Design Patterns: Elements of Reusable Object-Oriented Software (with Java)
Порождающие шаблоны проектирования
-
Abstract Factory (Абстрактная фабрика) предоставляет интерфейс создания семейства взаимосвязанных или взаимозависимых объектов без указания их конкретных классов
-
Builder (Строитель) ???
-
Factory Method (Фабричный метод) определяет интерфейс создания объека, но позволяет субклассам выбрать класс создаваемого экземпляра. Делегирует операцию создания экземпляра субклассам
-
Prototype (Прототип) ???
-
Singleton (Одиночка) гарантирует, что класс имеет только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру
Структурные шаблоны проектирования
-
Adapter (Адаптер) преобразует интерфейс класса к другому интерфейсу, на который расчитан клиент.Адаптер обеспечивает совместную работу классов, невозможную в обычных условиях из-за несовместимости интерфейсов.
-
Bridge (Мост) ???
-
Composite (Компоновщик) объединяет элементы в древовидные структуры для представления иерархии “часть/целое”. Компоновщик позволяет клиенту выполнять однородные операции с отдельными объектами и их совокупностями
-
Decorator (Декоратор) динамически наделяет объект новыми возможностями и является гибкой альтернативой суббклссированию в области расшерения функциональности
-
Facade (Фасад) предоставляет унифицированный интерфейс к группе интерфейсов подсистемы. Фасад определяет высокоуровневый интерфейс, упрощающий работу с подсистемой
-
Flyweight (Приспособленец) ???
-
Proxy (Заместитель) предоставляет суррогатный объект, который управляет доступом к реальному объекту
Поведенческие шаблоны проектирования
-
Chain of responsibility (Цепочка обязанностей) ???
-
Command (Команда) инкапсулирует запрос в виде объекта, делая возможность параметризацию клиентских объектов с другими запросами, организацию очереди или регистрацию запросов, а также поддержку отмены операций
-
Interpreter (Интерпретатор) ???
-
Iterator (Итератор) предоставляет механизм последовательного перебора элементов коллекции без раскрытия её внутреннего представления
-
Mediator (Посредник) ???
-
Memento (Хранитель)
-
Observer (Наблюдатель) определяет отношение “один-ко-многим” между объектами таким образом, что при изменении состояния одного объекта происходит автоматическое уведомление всех зависимых объектов
-
State (Состояние) управляет изменением поведения объекта при изменении его внутреннего состояния. Внешне это выглядит так, словно объект меняет свой класс
-
Strategy (Стратегия) определяет семейство алгоритмов, инкапсулирует каждый из них и обеспечивает их взаимозаменяемость. Он позволяет модифицировать алгоритмы независимо от их использования на стороне клиента
-
Template method (Шаблонный метод) задаёт “скелет” алгоритма в методе, оставляя реализации некоторых шагов субклассам. Субклассы могут переопределять некоторые части алгоритма без изменения его структуры
-
Visitor (Посетитель) ???