Шаг 23 - Несколько интерфейсов и версии

Еще одно использование полиморфизма версии COM объектов. Решив расширить функциональность объекта или исправить код можно создать новый класс на основе интерфейса. Соответственно новый клиент будет пользоваться новым объектом интерфейса, а старый старым. Что позволяет безболезненно выпускать все новые и новые более функциональные версии. Ни кто не запрещает собирать в класс реализации нескольких интерфейсов. Объявите два класса интерфейса:

Implements IClassNew
Implements IChet

Private Sub IChet_Method()
MsgBox "Chet1 Method"
End Sub

Private Sub IChet_Test()
MsgBox "Chet1 Test"
End Sub

Private Sub IClassNew_Test2()
MsgBox "chet1 Test2"
End Sub

И новая версия класса будет поддерживать и старый интерфейс и новый. Здесь совместимость идет на уровне интерфейсов. Есть один интерфейс, есть новый интерфейс. При таком подходе должен быть способ программно проверить, а поддерживает ли объект этот интерфейс. Он есть и реализовывается с помощью оператора TypeOf.

Dim interface As IChet
Private Sub Command1_Click()
Set interface = New ClassChet
If TypeOf interface Is IClassNew Then
    MsgBox "Support IClassNew"
End If
Set interface = Nothing
End Sub

Private Sub Command2_Click()
Set interface = New ClassChet1
If TypeOf interface Is IClassNew Then
    MsgBox "Support IClassNew"
End If
Set interface = Nothing
End Sub

К ClassChet1 добавлен интерфейс IClassNew.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 29.08.2001