Шаблоны проектирования "банды четырёх (GoF)"

Шаблоны проектирования "банды четырёх (GoF)"

Что такое паттерны проектирования?

Паттернами проектирования (Design Patterns) называют решения часто встречающихся проблем в области разработки программного обеспечения. В данном случае предполагается, что есть некоторый набор общих формализованных проблем, которые довольно часто встречаются, и паттерны предоставляют ряд принципов для решения этих проблем.

Концепцию паттернов впервые описал Кристофер Александер в книге «Язык шаблонов. Города. Здания. Строительство».

Идея показалась привлекательной авторам Эриху Гамму, Ричарду Хелму, Ральфу Джонсону и Джону Влиссидесу, их принято называть «бандой четырёх» (Gang of Four). В 1995 году они написали книгу «Design Patterns: Elements of Reusable Object-Oriented Software», в которой применили концепцию типовых паттернов в программировании. В книгу вошли 23 паттерна, решающие различные проблемы объектно-ориентированного дизайна.

Зачем знать паттерны?

Самое главная причина — паттерны упрощают проектирование и поддержку программ.

  • Проверенные решения.

    Ваш код более предсказуем когда вы используете готовые решения, вместо повторного изобретения велосипеда.

  • Стандартизация кода.

    Вы делаете меньше ошибок, так как используете типовые унифицированные решения, в которых давно найдены все скрытые проблемы.

  • Общий язык.

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

Каталог шаблонов проектирования

Порождающие паттерны:

Порождающие паттерны — это паттерны, которые абстрагируют процесс инстанцирования или, иными словами, процесс порождения классов и объектов. Среди них выделяются следующие:

  1. Абстрактная фабрика (Abstract Factory)

  2. Строитель (Builder)

  3. Фабричный метод (Factory Method)

  4. Прототип (Prototype)

  5. Одиночка (Singleton)

Структурные паттерны:

Структурные паттерны - рассматривает, как классы и объекты образуют более крупные структуры - более сложные по характеру классы и объекты. К таким шаблонам относятся:

  1. Адаптер (Adapter)

  2. Мост (Bridge)

  3. Компоновщик (Composite)

  4. Декоратор (Decorator)

  5. Фасад (Facade)

  6. Приспособленец (Flyweight)

  7. Заместитель (Proxy)

Поведенческие паттерны:

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

  1. Цепочка обязанностей (Chain of responsibility)

  2. Команда (Command)

  3. Интерпретатор (Interpreter)

  4. Итератор (Iterator)

  5. Посредник (Mediator)

  6. Хранитель (Memento)

  7. Наблюдатель (Observer)

  8. Состояние (State)

  9. Стратегия (Strategy)

  10. Шаблонный метод (Template method)

  11. Посетитель (Visitor)

0 7.3K 17.12.2017 12:00

Комментарии:

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