Architecture - makstron/info GitHub Wiki

SOLID

SOLID — це абревіатура складена з перших літер п'яти базових принципів об'єктно-орієнтованого програмування та дизайну запропонована Робертом Мартіном.

  • S - Принцип єдиного обов'язку (Single responsibility principle): Кожен об'єкт має виконувати лише один обов'язок.
  • O - Принцип відкритості/закритості (Open/closed principle): Програмні сутності повинні бути відкритими для розширення, але закритими для змін. Розширення певного класу/інтерфейсу може здійснюватись через його успадкування.
  • L - Принцип підстановки Лісков (Liskov substitution principle): Об'єкти в програмі можуть бути заміненими їх нащадками без зміни коду програми.
  • I - Принцип розділення інтерфейсу (Interface segregation principle): Багато спеціалізованих інтерфейсів краще за один універсальний. Інтерфейс може бути поділений на спеціалізовані ще на стадії проектування, заради майбутньої гнучкості програмних компонентів.
  • D - Принцип інверсії залежностей (Dependency inversion principle): Залежності всередині системи будуються на основі абстракцій, що не повинні залежати від деталей; навпаки, деталі мають залежати від абстракцій. Модулі вищих рівнів не мають залежати від модулів нижчих рівнів.

GoF

Набір патернів описаний в книзі з програмної інженерії за авторством "Банди чотирьох" ( Еріх Гамма, Річард Хелм, Ральф Джонсон, Джон Вліссідес)

  • Породжуючі шаблони проєктування
  • 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 — Відвідувач

GRASP

GRASP (англ. General Responsibility Assignment Software Patterns) — набір патернів (шаблонів, принципів), що дозволяють вирішувати проблеми розподілу обов'язків між різними класами. За своєю суттю, цей набір патернів більш абстрактний, ніж загально відомий каталог шаблонів від «Банди чотирьох» (GOF-шаблони). На відміну від звичних читачеві патернів з Банди Чотирьох, GRAPS патерни не мають вираженої структури, чіткої області застосування і конкретної розв'язуваної проблеми, а лише являють собою узагальнені підходи / рекомендації / принципи, використовувані при проектуванні дизайну системи.

  • Information Expert (Інформаційний експерт) -
  • Creator (Творець) -
  • Low Coupling (Низька зв'язаність) -
  • High Cohesion (Високе зачеплення) -
  • Controller (Контролер) -
  • Polymorphism (Поліморфізм) -
  • Pure Fabrication (Чиста вигадка) -
  • Indirection (Перенаправлення) -
  • Protected Variations (Стійкий до змін) -