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 (Стійкий до змін) -