Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Применимость

Читайте также:
  1. IV. Применимость теории Хорни
  2. Применимость
  3. Применимость
  4. Применимость
  5. Применимость различных формулировок

Используйте паттерн стратегия, когда:

Q имеется много родственных классов, отличающихся только поведением. Стратегия позволяет сконфигурировать класс, задав одно из возможных по­ведений;


 

Паттерны поведения

Q вам нужно иметь несколько разных вариантов алгоритма. Например, мож­но определить два варианта алгоритма, один из которых требует больше времени, а другой - больше памяти. Стратегии разрешается применять, когда варианты алгоритмов реализованы в виде иерархии классов [НО87];

О в алгоритме содержатся данные, о которых клиент не должен «знать». Ис­пользуйте паттерн стратегия, чтобы не раскрывать сложные, специфичные для алгоритма структуры данных;

Q в классе определено много поведений, что представлено разветвленными условными операторами. В этом случае проще перенести код из ветвей в от­дельные классы стратегий.

Структура

Участники

Q Strategy (Compositor) - стратегия:

- объявляет общий для всех поддерживаемых алгоритмов интерфейс. Класс
Context пользуется этим интерфейсом для вызова конкретного алгорит­
ма, определенного в классе ConcreteStrategy;

Q ConcreteStrategy (SimpleCompositor, TeXCompositor, ArrayCompositor) - конкретная стратегия:

- реализует алгоритм, использующий интерфейс, объявленный в классе
Strategy;

Q Context (Composition) - контекст:

- конфигурируется объектом класса ConcreteStrategy;

- хранит ссылку на объект класса Strategy;

- может определять интерфейс, который позволяет объекту Strategy по­
лучить доступ к данным контекста.

Отношения

Q классы Strategy и Context взаимодействуют для реализации выбранно­го алгоритма. Контекст может передать стратегии все необходимые алгорит­му данные в момент его вызова. Вместо этого контекст может позволить об­ращаться к своим операциям в нужные моменты, передав ссылку на самого себя операциям класса Strategy;

Q контекст переадресует запросы своих клиентов объекту-стратегии. Обычно клиент создает объект ConcreteStrategy и передает его контексту, после





Дата добавления: 2015-09-11; просмотров: 70 | Поможем написать вашу работу | Нарушение авторских прав

Пример кода | Паттерн Memento | Паттерн Observer | Реализация | Гдд Паттерны поведения | Паттерн Observer | Паттерн Observer | Паттерн State | Паттерн State | Паттерн State |


lektsii.net - Лекции.Нет - 2014-2025 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав