В контексте масла этот кусок меня куда больше смущает
Цитата:
|
Допустим, Вы сделали игру и Вы хотите, чтобы кто-то еще сделал для нее разные сущности - предметы, оружие, врагов. Для совместимости Ваших и сторонних классов и придуман интерфейс.
|
Вот получили мы с тобой интерфейс IWeapon, будем строгать для игры пушки. Реализовали, сделали. Я унаследовал свою пушку от Sprite, а ты от XML. Чья пушка вызовет эксепшн при добавлении в дисплай лист?
Значит, для примера куда больше подходит
псевдоабстрактный класс, унаследованный от DO.
Цитата:
|
Если сторонний класс не имеет нужных Вам интерфейсов (их может быть несколько) Вы, используя фабрику, наделяете его нужным интерфейсом.
|
Метопрограммирование – это чудесно, но, к сожалению, в языке оно развито так же плохо, как и лямбды.
Фабрика – как-бы-паттерн который создаёт экземпляры в рантайме. Поделись опытом, как в рантайме наделять классами. Действительно ли оно стоит? Возможно, эффективней будет всё-таки выкинуть фабрику да писать классы в редакторе, по старинке, складывая головную боль на компилятор?
Цитата:
|
Новый класс как бы проксирует его.
|
Почему как-бы? Это и есть прокси. Причем в самом настоящем его оверхеде. Вместо реплики "а класс-то неизменен!" лучше изменить исходный класс – вот где ниндзюцу.
(да, не всегда есть доступ к исходным кодам других классов, но... Станиславский не поверит.)