Replies (12)

  • @deep, а для не просвещенных можно вкратце, как это "композиция"?
  • @kutu, Ну это когда ты вместо того чтобы наследовать класс, создаешь экземпляр этого класса и тянешь его методы когда надо просто оборачиваешь новым классом.
  • @kutu, Пример когда ты не наследуешь EventDispatcher а просто реализуешь интерфейс IEventDispatcher а внутри класса создаешь какойто объект который умеет рассылать события
  • @deep, тогда я за наследование
  • @kutu, Ну как для непосвещенных скажу что иногда композиция лучше и многие выступают именно за нее а не за наследование, так как композиция позволяет писать менее связные и более переносимый код
  • @deep, в данном случае с евент диспатчером я бы наследовал, может если приведешь пример когда очевидно лучше использовать композицию?
  • @kutu, Ну примеров масса и не только с реализацией одноименного интерфейса. Сходу на ум приходит лишь книжный пример. Класс окно не наследует класс Rectangle а создает в себе экземпляр этого класса (наследовать окну лучше как раз EventDispatcher или даже Sprite) и хранит в нем все данные о своем положении и в случае необходимости вычеслить площадь окна или пересечение с другим окном он обращаеться к методу прямоугольника, а не считает все заного cfv
  • @kutu, Идеальный пример это класс Transform экземпляр которого есть у каждого дисплэйОбжекта, а трансформ внутри снова хранит ссылки на пару экземпляров классов и все действия ты проводишь с теми экземплярами, например меняешь положение с помошью матрицы трансформации, хотя можешь сделать и просто поменяв x y в самом классе, хотя скорее всего ты снова изменишь значения в матрице :) Вот такая вот композиция, она по всюду :)
  • @deep, наследование + композиция + тонны интерфейсов = мой выбор.
  • @FIZZER, Очень-очень-очень давно я просто не понимал зачем нужны интерфейсы и поставил перед собой цель — понять :) теперь я не понимаю как без них жить. правда в ас3 еще нехватает абстрактных классов :(
  • @deep, без них тоже вполне. влюблен пожизненно и бесповоротно в АС