Хотя вы можете сделать реализацию интерфейса общедоступной, это не считается хорошей практикой, равно как и хорошей практикой, позволяющей напрямую создавать экземпляр интерфейса, как вы можете это сделать. Это просто пример из принципа, что можно написать очень плохой код на VB6. :)
Лучшая практика выглядит следующим образом:
- Свойство экземпляра интерфейса - PublicNotCreatable.
- Реализованные методы интерфейса находятся в области конфиденциальности.
Таким образом:
Dim x as iMyInterface
Set x = new MyiMyInterfaceImplementation
x.CalliMyInterfaceMethodA
x.CalliMyInterfaceMethodY
И так далее. Если кто-то пытается напрямую создать экземпляр интерфейса, это должно вызвать ошибку, и если кто-то пытается вызвать реализованный метод напрямую, а не полиморфно через интерфейс, который также должен вернуть ошибку.