Паттерны проектирования в ABAP примерах

Ранее в блоге уже упоминались паттерны проектирования (GoF), однако их рассмотрение было несколько скомканным и не полным, в данной статье они будут рассмотрены более подробно.

Изучая паттерны, не стоит считать их неким священным Граалем, способным решить все задачи, они лишь инструмент, который нужно еще и грамотно применить. Главное, что нужно оценивать это то, какую проблему решает тот или иной паттерн и для чего он создан. Бездумное применение паттернов лишь внесёт дополнительную сложность в Ваше решение.

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

 

Порождающие паттерны (Creational patterns)

 

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

К порождающим паттернам относятся:

Поведенческие паттерны (Behavioral patterns)

 

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

К поведенческим паттернам относятся:

 

Структурные паттерны (Structural patterns)

 

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

  • Наследование, когда базовый класс определяет интерфейс, а подклассы — реализацию. Структуры на основе наследования получаются статичными.
  • Композиция, когда структуры строятся путем объединения объектов некоторых классов. Композиция позволяет получать структуры, которые можно изменять во время выполнения.

К структурным паттернам относятся:

 

Источники

 

  1. Youtube канал Сергея Немчинского.
  2. Видео курс Александра Шевчука на  ITVDN.
  3. Паттерны проектирования на платформе .NET от Сергея Теплякова. Пожалуй лучшая книга по теме.
  4. Видео курс Design Patterns Library на Pluralsight.
  5. Статья о паттернах в ООП метафорах.
  6. Приемы объектно-ориентированного проектирования. Паттерны проектирования.
  7. Э. Фриман. Паттерны проектирования.
  8. Wiki. Шаблоны проектирования.
  • svirinstel

    Список источников почти один-в-один, что использовал и я при изучении парадигмы ООП. Спасибо большое за статьи, в ближайшие дни осилю всё.
    А материалы с zevolving.com не использовали при подготовке? Там тоже достаточно неплохо написано, хотя некоторые примеры спорные…

    • Не, его не смотрел. На счет примеров, если будет что спорное тут, обязательно заменю на предложенный более подходящий вариант.

      • svirinstel

        Я бы еще в этой статье добавил названия групп паттернов на англ.: behavioral, creational и structural. Раз уж к самим паттернам перевод есть.

        • Добавлено, спасибо 🙂