Показать сообщение отдельно
Старый 28.10.2013, 15:04
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 64  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

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