Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Различия между шаблоном "Мост" и "Стратегия" (http://www.flasher.ru/forum/showthread.php?t=176310)

Котяра 07.03.2012 03:12

это как разница между жидкостью и молоком.
Стратегия разрешает использовать объекты по их общему интерфейсу.
А мост это паттерн позволящий вместо наследования использовать делегирование.
Сам мост в этом случае явлеятся декораторм прикрывющим старатегии)

angorow 07.03.2012 03:15

Идем от другого один поведенческий другой структурный. Правильно?

Котяра 07.03.2012 03:17

Да! Можно и так сказать.

angorow 07.03.2012 03:24

Так оно так и есть по классическому определению.) Реализация решения очевидна, но вот определение этой реализации...

Добавлено через 2 минуты
Цитата:

Сообщение от Котяра (Сообщение 1067631)
это как разница между жидкостью и молоком.

Если мы говорим об утолении жажды, то согласен, а если о других свойствах нет...)))

Wolsh 07.03.2012 10:34

Все же смысл Стратегии в предоставлении алгоритма, даже не метода в широком смысле (алгоритм ничего не знает о внутреннем устройстве клиента и может изменять только те данные, которые дали ему в обработку, в то время как "метод вообще" может оперировать членами класса-клиента/хозяина). А смысл Моста в предоставлении целой иерархии взаимосвязанных классов, "модуля". Скажем, на примере игры: если Вы взяли огнемет, то взяли также бак горючего, систему охлаждения и варежки. Взяли АК47 – взяли набор патронов такого-то калибра, штык-нож и оптический прицел. И огнемет, и АК47 – абстрактно Оружие. Но ситуация выбора/замены здесь это не Стратегия. Это Мост. "Оружие" – это не поведение, это структура. Стратегия – когда из АК47 Вы стреляете разрывными или трассирующими, и абстракция "выстрел" конкретно отображается разными способами. Мост предоставляет систему взаимосвязанных классов, а Стратегия - способ выполнения действия. Диаграммы похожи – ну а с чего им различаться, они показывают только абстрактную схему "выбор и замена". Схема отношений одна, фигуранты – разные.

angorow 07.03.2012 15:38

Здравствуйте!

Цитата:

Сообщение от Wolsh (Сообщение 1067647)
Все же смысл Стратегии в предоставлении алгоритма, даже не метода в широком смысле (алгоритм ничего не знает о внутреннем устройстве клиента и может изменять только те данные, которые дали ему в обработку, в то время как "метод вообще" может оперировать членами класса-клиента/хозяина).

Имплементация тоже не знает абсолютно ничего о абстракции и предоставляет только интерфейс. В плане доступа к членам класса тоже различий нет) Извините не убедительно.

Цитата:

Сообщение от Wolsh (Сообщение 1067647)
А смысл Моста в предоставлении целой иерархии взаимосвязанных классов

Не согласен...

Цитата:

Сообщение от Wolsh (Сообщение 1067647)
Скажем, на примере игры: если Вы взяли огнемет, то взяли также бак горючего, систему охлаждения и варежки. Взяли АК47 – взяли набор патронов такого-то калибра, штык-нож и оптический прицел. И огнемет, и АК47 – абстрактно Оружие.

На мой взгляд фабрика в чистом виде. Цель оружия стрелять, чем не важно.. Есть интерфейс стрельбы.

Цитата:

Сообщение от Wolsh (Сообщение 1067647)
Но ситуация выбора/замены здесь это не Стратегия. Это Мост.

Мост бы был если бы вы вот этот бак для огнемета хотели прикрутить к АК47 и оптику ко всему... Был бы мост.

Цитата:

Сообщение от Wolsh (Сообщение 1067647)
Мост предоставляет систему взаимосвязанных классов

не согласен

Цитата:

Сообщение от Wolsh (Сообщение 1067647)
, а Стратегия - способ выполнения действия

это очевидно
--------------------------------------------------------------------------------------------------------------
Спасибо!

dimarik 07.03.2012 18:26

Может его сразу забанить? Злой он какой-то. Сплошные "не согласен". )

K.A.T.A.F.A.L.K.E.R 07.03.2012 19:17

Имхо перенести во флейм :)
Насколько я понимаю никакого практического применения топик не имеет, автору всего лишь захотелось пофилософствовать. Или может действительно практическая задача не решится пока не станет ясна разница между паттернами? :)

Wolsh 07.03.2012 19:29

Ага, ожидал такой реакции. Что ж, тогда конкретней. Но не намного))

Рассмотрим последовательность.
Персонаж выбирает "оружие", берет "оружие", "прицеливается", "стреляет".
Мост:
выбратьОружие(Огнемет), взятьОружие(), прицелиться(), стрелять().
Стратегия:
выбратьОружие(Огнемет), взятьОружие(Огнемет), прицелиться(Огнемет), стрелять(Огнемет).

Так понятней?
Цитата:

Мост бы был если бы вы вот этот бак для огнемета хотели прикрутить к АК47 и оптику ко всему... Был бы мост.
Мост для того, чтобы к АК47 прикручивали рожок с патронами, а не несовместимые предметы. Это абстракция "снаряды", и Мост диктует ее реализацию в заданной системе - АК47.
Цитата:

Цель оружия стрелять, чем не важно.
Если Вы рассматриваете ОДИН метод, то никогда и не поймете разницы между Мостом и Стратегией. Потому что Стратегия это всегда один метод, а Мост – класс, который может быть фасадом, фабрикой, стратегией, чем угодно. Но если Вы берете Мост как объект с единственным методом, то получаете аналог Стратегии, конечно.

angorow 07.03.2012 20:04

Закройте тему пожалуйста! Все это лирика... Спасибо!


Часовой пояс GMT +4, время: 21:46.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.