Руководство по actionscript. часть 1, стр. 117

Когда использовать композицию вместо наследования. Листинг 6.2 поднимает серьезный вопрос проектирования. Как сделать выбор между композицией и наследованием? Вообще, достаточно легко определить ситуацию, в которой наследование неприменимо. Экземпляр класса Alert Dialog в приложении «имеет» кнопку ОК, но сам экземпляр класса AlertDialog кнопкой ОК не «является». Сложнее определить ситуацию, когда неприменимой оказывается композиция, поскольку наследование, используемое для создания отношения между двумя классами, всегда можно заменить композицией. Если в одной и той же ситуации применимы оба подхода, какой из них окажется лучшим выбором?

Для новичков в объектно-ориентированном программировании будет неожиданностью услышать, что зачастую при выборе стратегии проектирования приложений предпочтение отдают композиции, а не наследованию. На самом деле некоторые известные теоретики в области объектно-ориентированного проектирования недвусмысленно советуют использовать композицию вместо наследования (книга «Design Patterns: Elements of Reusable Object-Oriented Software» издательства Addison-Wesley, авторы Эрих Гамма (Erich Gamma) и др.). Таким образом, здравый смысл подсказывает нам хотя бы рассмотреть возможность применения композиции даже в том случае, когда выбор наследования кажется очевидным. И все-таки, вот несколько общих рекомендаций, которые помогут сделать выбор между наследованием и композицией:

? если вы желаете воспользоваться преимуществом полиморфизма, рассмотрите возможность применения наследования;

? когда классу необходимы сервисы другого класса, рассмотрите возможность использования отношения композиции;

? если поведение разрабатываемого вами класса очень похоже на поведение существующего класса, рассмотрите возможность применения отношения наследования.

Дополнительные советы по выбору подхода проектирования между композицией и наследованием можно найти в прекрасной статье JavaWorld Билла Веннера (Bill Venner), которая хранится в архиве на сайте автора: http://www. artima. com/ designtechniques/compoinh. html. Мистер Веннер приводит неоспоримые доказательства, что:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 093
  • 16.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.19
  • 22.04.2012">Facebook добавила кнопку «Слушать» на страницы музыкантов
  • 23.07.2011">Обновление линейки Aspire One
  • 23.02.2011">Руководство по actionscript. часть 7, стр. 022
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 044
  • 10.03.2011">Руководство по actionscript. часть 4, стр. 023
  • 16.08.2010">Нужна ли публикация списка клиентов?
  • 04.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.21
  • 24.02.2011">Руководство по actionscript. часть 7, стр. 013
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 038
  • 25.02.2011">Руководство по actionscript. часть 6, стр. 096
  • 19.03.2011">Руководство по actionscript. часть 2, стр. 088
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.51
  • 26.02.2011">Руководство по actionscript. часть 6, стр. 067
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...