Почему шаблон стратегии называется шаблоном стратегии? - PullRequest
7 голосов
/ 16 ноября 2009

Конечно, вы можете рассматривать это как своего рода стратегию, но это относится почти ко всем шаблонам проектирования. Итак: почему?

Ответы [ 3 ]

8 голосов
/ 16 ноября 2009

Поскольку некоторые компоненты реализуют стратегии, «способы чего-то достичь».

Смысл паттерна стратегии заключается в том, чтобы позволить вам выбрать способ выполнения чего-либо, «стратегию», во время выполнения.

Имя не относится к шаблону в целом, оно относится к объектам в шаблоне, которые выполняют действия.

7 голосов
/ 16 ноября 2009

Идея шаблона стратегии заключается в том, что «алгоритмы могут быть выбраны во время выполнения». (Википедия, Шаблон стратегии ) Шаблон, по сути, выбирает правильную стратегию (или поведение) для решения конкретной проблемы во время выполнения. Отсюда и название.

4 голосов
/ 16 ноября 2009

Это правда, что все шаблоны являются «стратегиями» для разработки приложений. Однако шаблон «Стратегия» принимает сложную логику, алгоритмы и т. Д. И инкапсулирует ее. Это очищает ваш код, а также позволяет использовать разные стратегии в зависимости от условий.

Ex. Я написал сложный расчет процентов для Обеспечения, и вместо того, чтобы фактически иметь расчет внутри класса Обеспечения, я переместил его в класс InterestCalcuation (стратегия). Затем, когда мне начали говорить, что расчет должен быть другим, потому что InterestCalculation привязан к интерфейсу IInterestCalculation, я мог переключаться и создавать новые вычисления столько, сколько мне нужно, и класс Обеспечения не изменился ...

...