Перейти до основного вмісту

Шаблони проектування

Загальні відомості

Шаблони (або патерни) проектування описують типові способи вирішення проблем, що часто зустрічаються при проектуванні програм і програмних систем.

Основна користь від використання шаблонів полягає у зниженні складності розробки за рахунок готових абстракцій на вирішення цілого класу проблем. Шаблон дає рішенню своє ім'я, що полегшує комунікацію між розробниками, дозволяючи посилатися на відомі шаблони. Таким чином, за рахунок шаблонів проводиться уніфікація деталей рішень: модулів, елементів проекту, знижується кількість помилок.

Шаблони проектування поділяються як за рівнями застосування, так і за типами, які застосовуються на конкретному рівні застосування.

Архітектурні шаблони

Архітектурні шаблони є ширшим поняттям, ніж шаблони проєктування, які охоплюють компоненти або частини програми. В архітектурних шаблонах можуть використовуватися декілька шаблонів проєктування.

Класичні шаблони проектування

Таблиця за групами

Породжувальні, CreationalСтруктурні, StructuralПоведінкові, Behavioral
КласФабричний метод, Factory methodАдаптер (клас), AdapterІнтерпретатор, Interpreter
Об’єктАбстрактна фабрика, Abstract FactoryАдаптер (об’ект), AdapterЛанцюжок обов’язків, Chain of Responsibility
Будівельник, BuilderМіст, BridgeКоманда, Command
Прототип, PrototypeКомпонувальник, CompositeІтератор, Iterator
Одинак, SingletonДекоратор, DecoratorПосередник, Mediator
Текучий інтерфейс, Fluent InterfaceФасад, FacadeЗнімок, Memento
Легковаговик, FlyweightСпостерігач, Observer
Замісник, ProxyСтан, State
Стратегія, Strategy
Відвідувач, Visitor
Шаблонний метод, Template Method

Про шаблони класів

Шаблони класів визначають відносини між класами та їх підкласами.

Отже, шаблони класів мають тенденцію використовувати успадкування встановлення відносин. На відміну від шаблонів об'єктів та відносин між об'єктами, шаблони класів зазвичай фіксують відносини під час компіляції. Вони менш гнучкі та динамічні та менш підходять для поліморфних підходів.

Про шаблони об'єктів

Шаблони об'єктів визначають відносини між об'єктами.

Загалом, мета шаблону об'єкта полягає в тому, щоб дозволити використання екземплярів різних класів в тому самому місці шаблону. Шаблони об'єктів дозволяють уникнути фіксації класу, що виконує це завдання під час компіляції. Натомість фактичний клас об'єкта може бути обраний під час виконання. Шаблони об'єктів переважно використовують композицію або агрегацію об'єктів встановлення відносин між об'єктами.

Популярні шаблони