я в своем движке так делал. очень удобно.
|
Да в моем движке тоже так сделано, но есть недостаток всетаки один - интерфейс должен быть хорошо продуман с самого начала, что бывает очень редко. Я вот смотрел паттерны и мне понравился паттерн типа мост - можно наследовать интерфейсы и реализации отдельно друг от друга, и каждый развивать по своему, еще можно несколько интерфейсов цеплять на одну реализацию. Я уже сделал несколько объектов таким образом: например существует реализация камеры, и для нее есть три интерфейса - один сделан для управления камерой в играх от третьего лица, второй для управления свободной камерой и первого лица, третий - для стратегий. У каждого интерфейса свои уникальные наборы методов, общие методы можно объеденить в абстрактный класс интерфейса. Вобщем один и тот же объект-реализация может нацеплять на себя разные интерфейсы в зависимости от контекста в котором он используется, объект при этом не нужно удалять/пересоздавать - интерфейсы меняются прямо в рантайме.
Так как в этом случае будет использоваться RTTI...
|
Тут я имел ввиду что функция будет вызываться не напрямую, а через vtable и например реализация msvs вызывает методы из dll даже если они не экспортируемые.