Шпаргалка по GoF шаблонам

Posted: Май 27, 2011 in Паттерны

Шаблон Strategy

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

Шаблон Decorator

Пару слов: для избежания изменения базовых классов они оборачиваются в декоратор с добавлением функциональности. Можно несколько декораторов наследовать от декорируемого класса, и оборачивать их друг в друга.

Шаблон Factory

Пару слов: чтобы не писать много условий создания объектов в разных местах, их сначала выносят в отдельный метод. При дальнейшем развитии эти методы можно объединить в отдельном классе «фабрике». При дальнейшем развитии создаются «фабрики» на каждое условие, и выделяется «абстрактная фабрика» создающая «конкретные фабрики».

Шаблон Observer

Пару слов: объект хранит в себе список «наблюдателей». При наступлении определенного события он извещает всех «наблюдателей».

Шаблон Chain of Responsibility

Пару слов: объект хранит в себе только следующий ответственный объект. При наступлении определенного события и невозможности его обработать он извещает только следующий ответственный объект.

Шаблон Flyweight

Пару слов: можно хранить не список тяжеловесных объектов, а список легковесных настроект и несколько тяжеловесных объектов. Один и тот же объект, в зависимости от настроек, может действовать несколько разных объектов.

Шаблон Adapter

Пару слов: объект, реализующий нужных интерфейс, хранит в себе объект, реализующий ненужный интерфейс, и преобразует его интерфейс в свой.

Шаблон Facade

Пару слов: прячет большой уродливый API за маленьким красивым.

Шаблон Template Design

Пару слов: «шаблонный метод», который нельзя переопределить в потомках, но необходимо переопределить методы, вызываемые в определенном порядке из «шаблонного».

Шаблон Builder

Пару слов: «строитель» может «делать» определенный объект по частям. Хорошая реализация, когда builder object передает список действий buildable object, который в свою очередь возвращает нужных объект, последовательно выполняя список действий.

Шаблон Composite

Пару слов: шаблон хорош для обхода деревьев, где узлы трактуются также как листья.

Шаблон Visitor
Пару слов: в отличие от composite, при обходе дерева, всем элементам нужно передавать объект visitor, который сам знает что делать с узлами и листьями. По сути идет передача алгоритма обработки.

Шаблон State

Пару слов: все конечные автоматы построены на этой идее. А конечные автоматы идеальны при разборе текста.

Шаблон Proxy

Пару слов: локальный представитель удаленного объекта или сервиса.

Шаблон Command

Пару слов: объектная оболочка для действия. Очень хорош в текстовых редакторах для Undo/Redo.

Шаблон Mediator

Пару слов: чтобы объекты не общались друг с другом напрямую, все их запросы идут в объект «посредник», который затем решает кому их передать.

Шаблон Prototype

Пару слов: а-ля clone().

Шаблон Memento
Пару слов: хранит в себе начальное состояние объекта.

Шаблон Interpreter
Пару слов: только для реализации своего языка.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s