Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.
Под катом — много картинок.
Условные обозначения
Отношения между классами
- — агрегация (aggregation) — описывает связь «часть»–«целое», в котором «часть» может существовать отдельно от «целого». Ромб указывается со стороны «целого».
- — композиция (composition) — подвид агрегации, в которой «части» не могут существовать отдельно от «целого».
- — зависимость (dependency) — изменение в одной сущности (независимой) может влиять на состояние или поведение другой сущности (зависимой). Со стороны стрелки указывается независимая сущность.
- — обобщение (generalization) — отношение наследования или реализации интерфейса. Со стороны стрелки находится суперкласс или интерфейс.
Виды паттернов
- — поведенческие (behavioral);
- — порождающие (creational);
- — структурные (structural).
Список шаблонов
Хранитель (memento)
Цепочка обязанностей (chain of responsibility)
Наблюдатель (observer)
Команда (command)
Состояние (state)
Интерпретатор (interpreter)
Стратегия (strategy)
Итератор (iterator)
Шаблонный метод (template method)
Посредник (mediator)
Посетитель (visitor)
Адаптер (adapter)
Прокси (proxy)
Мост (bridge)
Абстрактная фабрика (abstract factory)
Компоновщик (composite)
Строитель (builder)
Декоратор (decorator)
Фабричный метод (factory method)
Фасад (facade)
Прототип (prototype)
Приспособленец (flyweight)
Одиночка (singleton)
Файлы
Upd. оригинальный pdf и изображения (1, 2).
P.S. По запросу «шаблоны проектирования» 636 топиков, а хаба нет; а по «bitcoin» — 278 топиков и хаб есть. Прошу восстановить справедливость!
Опросы
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Стоит ли продолжать переводить шпаргалки?
96.06% Да4540
3.94% Нет186
Проголосовали 4726 пользователей. Воздержались 410 пользователей.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Нужен ли хаб для паттернов?
86.22% Нужен3880
13.78% Не нужен620
Проголосовали 4500 пользователей. Воздержались 608 пользователей.