Шаблон:Шаблони проєктування ПЗ п о р Шаблони проєктування програмного забезпеченняОсновні шаблони Абстрагування (програмування) • Делегування (Delegation) • Інтерфейс (Interface) • Інтерфейс-маркер (Marker Interface) • Незмінний інтерфейс (Immutable Interface) • Незмінний об'єкт (Immutable Object) • Функціональний дизайн (Functional Design) • Контейнер властивостей (Property Container) • Канал подій (Event Channel)Твірні шаблони Абстрактна фабрика (Abstract Factory) • Будівник (Builder) • Одинак (Singleton) • Прототип (Prototype) • Фабричний метод (Factory Method) • Пул об'єктів • Fluent builder • Мультитон • Лінива ініціалізація • Отримання ресурсу, як ініціалізація (Resource Acquisition Is Initialization)Структурні шаблони Адаптер (Adapter) • Декоратор (Decorator) • Замісник (Proxy) • Компонувальник (Composite) • Міст (Bridge) • Легковаговик (Flyweight) • Фасад (Facade) • Модуль • Виділення приватного класу даних • БлизнюкиШаблони поведінки Відвідувач (Visitor) • Інтерпретатор (Interpreter) • Ітератор (Iterator) • Команда (Command) • Ланцюжок відповідальностей (Chain of Responsibility) • Посередник (Mediator) • Спостерігач (Observer) • Стан (State) • Стратегія (Strategy) • Знімок (Memento) • Шаблонний метод (Template Method) • Одноразовий відвідувач • Null object • Специфікація • Feature toggle • Мультиметод • Перехоплювач (Interceptor) • Накопичувач (Collecting Parameter) • Слуга (Servant)Функційні Функтор • Генератор • Замикання • Монади • Каррінг • Функція зворотного виклику • Функція вищого порядку • Вкладена функція • Результат (Result)Патерниконкурентногопрограмування Блокування • Модель акторів • Бар'єр • Монітор • Семафор • М'ютекс • Планувальник операційної системи • Локальна пам'ять ниток • Оптимістичне блокування (Optimistic Offline Lock) • Песимістичне блокування (Pessimistic Offline Lock) • Активний об'єкт (Active Object) Кешування Cashe aside • Read-Through Cache • Write-Through Cache • Write-Around • Write-Back • Update-BackАрхітектурні Базові шаблони Клієнт-серверна архітектура • Front end та back end • Триярусна архітектура • Гексагональна архітектура (Архітектура портів та адаптерів) • Відокремлений інтерфейс (Separated Interface) • Сервісно-орієнтована архітектура • Мікросервіси • Push/Pull модельШаблони об'єктного структурування Rich/Anemic модель • DAO • Command and Query Objects • DTOШаблони представлення MVC • PureMVC • HMVC • MVP • MVVM • Post/Redirect/GetШаблони предметно-орієнтованого проєктування Rich/Anemic модель • DDD • Інваріант • Entity • Value Object • Aggregate Root • DTO • Repository • Патерн сервісного рівня (Service Layer) • Фабричний метод (Factory Method) • Специфікація Шаблони сервісно-орієнтованої архітектури Сервісно-орієнтована архітектура • Мікросервіси • Шлюз (Gateway) • Публікація-підписка • Інтеграційна шина даних • Event Sourcing • Двофазна транзакція • Saga • Circuit breaker • Асинхронна http модельАрхітектуракорпоративнихпрограмнихдодатків Базові шаблони Об'єкт-значення (Value Object) • Гроші (Money) • Особливий випадок (Special Case) • Супертип рівня (Layer Supertype) • Відокремлений інтерфейс (Separated Interface) • Шлюз (Gateway) • Розподільник (Mapper) • Реєстр (Registry) • Плагін (Plugin) • Набір записів (Record Set) • Заглушка сервісу (Service Stub)Шаблони логіки домену Сценарій транзакції (Transaction script) • Модель предметної області (Domain model) • Обробник таблиці (Table Module) • Патерн сервісного рівня (Service Layer)Шаблони сховища даних Активний запис (Active Record) • Шлюз до даних таблиці (Table Data Gateway) • Шлюз до даних запису (Row Data Gateway) • Відображення даних (Data Mapper)Шаблони об'єктно-реляційної поведінки Одиниця роботи (Unit Of Work) • Мапа відповідності (Identity Map) • Ліниве завантажування (Lazy Load)Шаблони об'єктно-реляційного структурування Поле первинного ключа (Identity Field) • Розмітка зовнішніх ключів (Foreign Key Mapping) • Розмітка зв'язків таблиць (Association Table Mapping) • Відображення залежних об'єктів (Dependent Mapping) • Об'єднане значення (Embedded Value) • Серіалізований великий об'єкт (Serialized LOB) • Наслідування з однією таблицею (Single Table Inheritance) • Наслідування з таблицею для кожного класу (Class Table Inheritance) • Наслідування з таблицею для кожного конкретного класу (Concrete Table Inheritance) • Відображення із наслідуванням (Inheritance Mappers) • База даних звітностіШаблони обробки об'єктно-реляційних метаданих Відображення на основі метаданих (Metadata Mapping) • Об'єкт-запит (Query Object) • Сховище (Repository)Шаблони вебпредставлення Модель-вид-контролер (Model View Controller) • Контролер сторінки (Page Controller) • Єдина точка входу (Front controller) • Контролер аплікації (Application Controller) • Шаблонізатор (Template View) • Перетворювач (Transform View) • Двокрокова шаблонізація (Two Step View)Шаблони розподіленої обробки даних Фасад (Remote Facade) • Об'єкт передачі даних (Data Transfer Object)Шаблони локального конкурентного програмування Оптимістичне блокування (Optimistic Offline Lock) • Песимістичне блокування (Pessimistic Offline Lock) • Блокування із низьким рівнем деталізації (Coarse Grained Lock) • Неявне блокування (Implicit Lock)Шаблони збереження стану сеансу Збереження стану сеансу на стороні клієнта (Client Session State) • Збереження стану сеансу на стороні сервера (Server Session State) • Збереження стану сеансу в базі даних (Database Session State)Тестування PageObject • Макет об'єкта (Mock Object) • Заглушка сервісу (Service Stub) • Скромний об'єкт (Humble Object)Інші Впровадження залежностей • IoC контейнер • Локатор служб (Service Locator) • М'яке видалення (Soft Delete) • Auditable Entity • Entity Component System (ECS) • Extract, Transform, Load (ETL)Див. також Design Patterns (книга) • Бізнес-логіка • Інваріант • Зв'язність (Coupling) • Пов'язаність (Cohesion) • Закон Деметри • KISS • DRY • YAGNI • Tell Don't Ask • SOLID • CQRS • GRASP • Ідемпотентність • Мартін Фаулер • Антипатерн