
- •ПАТТЕРНЫ
- •Определение и классификация
- •ПОРОЖДАЮЩИЕ
- •Порождающие паттерны
- •ПАТТЕРН SINGLETON
- •Singleton
- •Singleton - проблема
- •Singleton - решение
- •Singleton - структура
- •Singleton - участники
- •Паттерн Singleton
- •Singleton – преимущества и недостатки
- •ПАТТЕРН PROTOTYPE
- •Prototype
- •Prototype - проблема
- •Prototype – решение
- •Prototype – структура
- •Prototype - участники
- •Prototype – преимущества и недостатки
- •ПАТТЕРН FACTORY METHOD
- •Factory Method
- •Factory Method - проблема
- •Factory Method - решение
- •Factory Method - решение
- •Factory Method - структура
- •Factory Method - участники
- •Factory Method – преимущества и недостатки
- •ПАТТЕРН ABSTRACT FACTORY
- •Abstract Factory
- •Abstract Factory - проблема
- •Abstract Factory - решение
- •Abstract Factory - структура
- •Abstract Factory - участники
- •Abstract Factory – преимущества и недостатки
- •ПАТТЕРН BUILDER
- •Builder
- •Builder - проблема
- •Builder - решение
- •Builder - решение
- •Builder - решение
- •Builder - структура
- •Паттерн Builder - участники
- •Builder
- •Builder – преимущества и недостатки
- •СТРУКТУРНЫЕ
- •Структурные паттерны
- •ПАТТЕРН ADAPTER
- •Adapter
- •Adapter - проблема
- •Adapter - решение
- •Adapter - структура
- •Adapter - участники
- •Adapter - пример
- •Adapter – достоинства и недостатки
- •ПАТТЕРН BRIDGE
- •Bridge
- •Bridge - проблема
- •Bridge - решение
- •Bridge - структура
- •Bridge - участники
- •Bridge – преимущества и недостатки
- •ПАТТЕРН COMPOSITE
- •Composite
- •Composite – проблема и решение
- •Composite – аналогия из жизни
- •Composite – структура
- •Composite - участники
- •Composite - пример
- •Composite – преимущества и недостатки
- •ПАТТЕРН DECORATOR
- •Decorator
- •Decorator - проблема
- •Decorator – проблема и решение
- •Decorator – решение
- •Decorator – аналогия из жизни
- •Decorator – структура
- •Decorator - участники
- •Decorator – пример
- •Decorator – преимущества и недостатки
- •ПАТТЕРН FACADE
- •Facade
- •Facade – проблема и решение
- •Facade – аналогия из жизни
- •Façade - структура
- •Facade - участники
- •Facade - пример
- •Facade – преимущества и недостатки
- •ПАТТЕРН FLYWEIGHT
- •Flyweight
- •Flyweight - проблема
- •Flyweight - решение
- •Flyweight - решение
- •Flyweight – структура
- •Flyweight - участники
- •Flyweight – пример
- •Flyweight – преимущества и недостатки
- •ПАТТЕРН PROXY
- •Proxy
- •Proxy - проблема
- •Proxy - решение
- •Proxy – аналогия из жизни
- •Proxy – структура
- •Паттерн Proxy - участники
- •Паттерн Proxy - участники
- •Proxy - пример
- •Proxy – преимущества и недостатки
- •ПАТТЕРНЫ
- •Паттерны поведения
- •ПАТТЕРН CHAIN
- •Chain of Responsibility
- •Chain of Responsibility - проблема
- •Chain of Responsibility - решение
- •Chain of Responsibility - решение
- •Chain of Responsibility – аналогия из жизни
- •Chain of Responsibility – структура
- •Chain of Responsibility -
- •Chain of Responsibility - пример
- •Chain of Responsibility - пример
- •Chain of Responsibility –
- •ПАТТЕРН COMMAND
- •Command
- •Command – проблема
- •Command – проблема
- •Command - участники
- •Command – преимущества и недостатки
- •ПАТТЕРН INTERPRETER
- •Паттерн Interpreter
- •Паттерн Interpreter
- •Паттерн Interpreter
- •Паттерн Interpreter
- •Паттерн Interpreter
- •Паттерн Interpreter
- •Паттерн Interpreter
- •Паттерн Interpreter
- •Паттерн Interpreter
- •Паттерн Interpreter
- •Паттерн Interpreter
- •– преимущества и недостатки
- •ПАТТЕРН ITERATOR
- •Паттерн Iterator
- •Паттерн Iterator
- •Паттерн Iterator
- •Паттерн Iterator
- •Паттерн Iterator
- •Паттерн Iterator
- •Паттерн Iterator
- •Паттерн Iterator
- •Паттерн Iterator
- •Паттерн Iterator
- •Паттерн Iterator
- •Паттерн Iterator
- •Паттерн Iterator
- •– преимущества и недостатки
- •ПАТТЕРН MEDIATOR
- •Паттерн Mediator
- •Паттерн Mediator
- •Паттерн Mediator
- •Паттерн Mediator
- •Паттерн Mediator
- •Паттерн Mediator
- •Паттерн Mediator
- •Паттерн Mediator
- •Паттерн Mediator
- •Паттерн Mediator
- •Паттерн Mediator
- •Паттерн Mediator
- •Паттерн Mediator
- •Паттерн Mediator
- •– преимущества и недостатки
- •ПАТТЕРН MEMENTO
- •Паттерн Memento
- •Паттерн Memento
- •Паттерн Memento
- •Паттерн Memento
- •Паттерн Memento
- •Паттерн Memento
- •Паттерн Memento
- •Паттерн Memento
- •Паттерн Memento
- •Паттерн Memento
- •Паттерн Memento
- •– преимущества и недостатки
- •ПАТТЕРН OBSERVER
- •Паттерн Observer
- •Паттерн Observer
- •Паттерн Observer
- •Паттерн Observer
- •Паттерн Observer
- •Паттерн Observer
- •Паттерн Observer
- •Паттерн Observer
- •Паттерн Observer
- •Паттерн Observer
- •Паттерн Observer
- •Паттерн Observer
- •– преимущества и недостатки
- •ПАТТЕРН STATE
- •Паттерн State
- •Паттерн State
- •Паттерн State
- •Паттерн State
- •Паттерн State
- •Паттерн State
- •Паттерн State
- •Паттерн State
- •Паттерн State
- •Паттерн State
- •– преимущества и недостатки
- •ПАТТЕРН STRATEGY
- •Паттерн Strategy
- •Паттерн Strategy
- •Паттерн Strategy
- •Паттерн Strategy
- •Паттерн Strategy
- •Паттерн Strategy
- •Паттерн Strategy
- •Паттерн Strategy
- •Паттерн Strategy
- •Паттерн Strategy
- •Паттерн Strategy
- •– преимущества и недостатки
- •ПАТТЕРН TEMPLATE METHOD
- •Паттерн Template Method
- •Паттерн Template Method
- •Паттерн Template Method
- •Паттерн Template Method
- •Паттерн Template Method
- •Паттерн Template Method
- •Паттерн Template Method
- •Паттерн Template Method
- •Паттерн Template Method
- •Паттерн Template Method
- •– преимущества и недостатки
- •ПАТТЕРН VISITOR
- •Паттерн Visitor
- •Паттерн Visitor
- •Паттерн Visitor
- •Паттерн Visitor
- •Паттерн Visitor
- •Паттерн Visitor
- •Паттерн Visitor
- •Паттерн Visitor
- •Паттерн Visitor
- •Паттерн Visitor
- •Паттерн Visitor
- •Паттерн Visitor
- •– преимущества и недостатки

Command
Название и классификация паттерна
•Команда - паттерн поведения объектов.
Назначение
•Инкапсулирует запрос как объект, позволяя тем самым задавать параметры клиентов для обработки соответствующих запросов, ставить запросы в очередь или протоколировать их, а также поддерживать отмену операций.
Известен также под именем
•Action (действие), Transaction (транзакция).
121

Command – проблема
Все кнопки приложения унаследованы от одного класса
Множество подклассов кнопок.

Command – проблема
Несколько классов дублируют одну и ту же функциональность.

Command - участники
•Command - команда:
•- объявляет интерфейс для выполнения операции;
•ConcreteCommand (PasteCommand, OpenCommand) - конкретная команда:
•- определяет связь между объектом-получателем Receiver и действием;
•- реализует операцию Execute путем вызова соответствующих операций объекта Receiver;
•Client (Application) - клиент:
•- создает объект класса ConcreteCommand и устанавливает его получателя;
•Invoker (Menultem) - инициатор:
•- обращается к команде для выполнения запроса;
•Receiver (Document, Application) - получатель:
•- располагает информацией о способах выполнения операций, необходимых для удовлетворения запроса. В роли получателя может выступать любой класс.
124

Command – преимущества и недостатки
Преимущества Недостатки

ПАТТЕРН INTERPRETER

Паттерн Interpreter
Название и классификация паттерна
• Интерпретатор - паттерн поведения классов.
Назначение
•Для заданного языка определяет представление его грамматики, а также интерпретатор предложений этого языка.
127

Паттерн Interpreter
Применимость
•Используйте паттерн интерпретатор, когда есть язык для интерпретации, предложения которого можно представить в виде абстрактных синтаксических деревьев. Лучше всего этот паттерн работает, когда:
•грамматика проста. Для сложных грамматик иерархия классов становится слишком громоздкой и неуправляемой.
•эффективность не является главным критерием. Наиболее эффективные интерпретаторы обычно не работают непосредственно с деревьями, а сначала транслируют их в другую форму.
128

Паттерн Interpreter
Мотивация
129

Паттерн Interpreter
Мотивация
130