|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Mar 2012
Адрес: г. Санкт-Петербург
Сообщений: 16
|
Различия между шаблоном "Мост" и "Стратегия"
Здравствуйте!
В данной беседе хочется найти объективные различия этих двух шаблонов, кроме различий которые содержатся в их описании. Стратегия— поведенческий шаблон проектирования, предназначенный для определения семейства алгоритмов, инкапсуляции каждого из них и обеспечения их взаимозаменяемости. Это позволяет выбирать алгоритм путем определения соответствующего класса. Шаблон Стратегия позволяет менять выбранный алгоритм независимо от объектов-клиентов, которые его используют. Шаблон "стратегия": http://ru.wikipedia.org/wiki/%D0%A1%...D%D0%B8%D1%8F) Мост — шаблон проектирования, используемый в проектировании программного обеспечения чтобы «разделять абстракцию и реализацию так, чтобы они могли изменяться независимо». Шаблон bridge (от англ. — мост) использует инкапсуляцию,агрегирование и может использовать наследование для того, чтобы разделить ответственность между классами. Шаблон "мост":http://ru.wikipedia.org/wiki/%D0%9C%...BD.D0.B8.D0.B5 Раунд 1 собственно. Я думаю нужно начать с решения(рационального решения) конкретной задачи. Допустим есть: C (A, B, C) все предельно просто (B, C) расширяют A, полиморфизм хорошо здесь выполняет свои задачи, но на сцене появляются (D, E, F). Здесь начинается самое интересное! Мы видим, что функционал (D, E, F) может быть добавлен к любому из (B, C). Как быть? Наследование в данном случае будет не эффективно(речь конечно же идет только о AS3). В данном случае логично применить ход, который заключается в описании шаблонов “Стратегия” или “Мост”? Очень интересны ваши мнения по этому поводу! Заранее благодарен! |
|
|||||
Надеюсь это вам поможет
Цитата:
Цитата:
Цитата:
__________________
местонахождение |
|
|||||
Регистрация: Mar 2012
Адрес: г. Санкт-Петербург
Сообщений: 16
|
Здравствуйте!
Читайте пост внимательно! Все в посте! Цель здесь абсолютно не имеет значения, придумайте любую цель и подставьте вместо буквы... Кто говорит про множественное наследование? Где я сказал, что оно есть? По этой причине речь и идет о паттернах "Мост" и "Стратегия" |
|
|||||
Регистрация: Jan 2012
Сообщений: 35
|
И все же. Чем Вас не устраивает обычная инкапсуляция? Без кодовой обертки конструкторов?
На случай если B и С в качестве общего предка имеют что-то недалеко отошедшее от простого object, в AS3 есть интерфейсы, облегчающие доступ к методам не имеющим общего предка. Тем более, что и стратегия и мост, как, впрочем и фабрика не столь очевидны в реализации и использовании, если Ваши ABC растут от DisplayObject. |
|
|||||
Регистрация: Mar 2012
Адрес: г. Санкт-Петербург
Сообщений: 16
|
Еще раз добрый вечер!
Да меня все устраивает и я сам этим пользуюсь, но....о... На днях наткнулся на "битву титанов", которая собственно была приурочена статье одного из этих “титанов” на тему “Bridge”, в статье был пример из-за, которого и развилась эта баталия. А разногласия заключались в том, что одни считали это “Стратегия”, другие считали, что это “Мост”. И все это длилось в течении 100 постов. Итог: внятно ни кто не смог объяснить разницу между двумя этими шаблонами, кроме как дать скупую цитату из описания этих шаблонов. А вопрос еще раз для вас в сабже))). Добавлено через 5 минут И Interface здесь ну......! Вы предлагает одну и ту же реализацию переписывать по n-раз? Противоречит предназначению Interface. Может я вас не правильно понял. |
|
|||||
Цитата:
__________________
...вселенская грусть |
|
|||||
Регистрация: Mar 2012
Адрес: г. Санкт-Петербург
Сообщений: 16
|
Здравствуйте!
Вы все на 100% поняли наоборот! Я и говорю о том, что Interface приводит различные реализации к одной спецификации. Согласны? Если да читайте все с начала, в первом моем посте есть две диаграмки с зелеными кубиками. |
|
|||||
Здравствуйте! Перечитайте свой пост (№5). В нем говорится, что написание кода n раз противоречит смыслу интерфейсов. Так вот - не противоречит. Вообще все равно, что там за код скрыт за интерфейсом. Согласны? Если нет - читайте все сначала.
__________________
...вселенская грусть |
|
|||||
Регистрация: Mar 2012
Адрес: г. Санкт-Петербург
Сообщений: 16
|
Еще раз первый пост! Я и говорю, что из слов
Сообщение от Yahen есть интерфейсы, облегчающие доступ к методам не имеющим общего предка. применительно к диаграммам в первом сообщении код реализации интерфейса будет один и тот же для каждого случая, что есть бред! Будьте пожалуйста внимательнее. |
|
|||||
Почему бред? Вы попрбуйте применить тут композицию - все встанет на свои места. Да, код будет один и тот же. Более того - он и написан будет один раз, в нужных классах-"запчастях". Это даст Вам возможность собирать как из кубиков лего любую конкретную реализацию интерфейса.
И при чем тут мое внимание?
__________________
...вселенская грусть |
Часовой пояс GMT +4, время: 15:58. |
|
« Предыдущая тема | Следующая тема » |
|
|