Снова шаблоны
Здравствуйте!
В данной беседе хочется найти объективные различия этих двух шаблонов, кроме различий которые содержатся в их описании. Стратегия— поведенческий шаблон проектирования, предназначенный для определения семейства алгоритмов, инкапсуляции каждого из них и обеспечения их взаимозаменяемости. Это позволяет выбирать алгоритм путем определения соответствующего класса. Шаблон Стратегия позволяет менять выбранный алгоритм независимо от объектов-клиентов, которые его используют. http://upload.wikimedia.org/wikipedi...gy_pattern.PNG Шаблон "стратегия": http://ru.wikipedia.org/wiki/%D0%A1%...D%D0%B8%D1%8F) Мост — шаблон проектирования, используемый в проектировании программного обеспечения чтобы «разделять абстракцию и реализацию так, чтобы они могли изменяться независимо». Шаблон bridge (от англ. — мост) использует инкапсуляцию,агрегирование и может использовать наследование для того, чтобы разделить ответственность между классами. http://upload.wikimedia.org/wikipedi.../Bridgeuml.gif Шаблон "мост":http://ru.wikipedia.org/wiki/%D0%9C%...BD.D0.B8.D0.B5 Раунд 1 собственно. Я думаю нужно начать с решения(рационального решения) конкретной задачи. Допустим есть: http://imglink.ru/thumbnails/06-03-1...d67af849e5.jpg C (A, B, C) все предельно просто (B, C) расширяют A, полиморфизм хорошо здесь выполняет свои задачи, но на сцене появляются (D, E, F). http://imglink.ru/thumbnails/06-03-1...d6a7897d1e.jpg Здесь начинается самое интересное! Мы видим, что функционал (D, E, F) может быть добавлен к любому из (B, C). Как быть? Наследование в данном случае будет не эффективно(речь конечно же идет только о AS3). В данном случае логично применить ход, который заключается в описании шаблонов “Стратегия” или “Мост”? Очень интересны ваши мнения по этому поводу! Заранее благодарен! |
Если он действительно "может быть добавлен". То инкапсуляция простейший и очевидный выбор.
Не плодите сущности ( читай паттерны) без необходимости. Код ради кода не нужен даже индусам. |
Здравствуйте!
Вы писали: Цитата:
|
Привет! Название темы не отражает сути вопроса. Избегайте слова "снова" при формулировании названия темы. Адью!
|
Часовой пояс GMT +4, время: 14:49. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.