Шаблоните за дизайн (англ: Software design pattern) представляват концепция предназначена за разрешаване на често срещани проблеми в обектно-ориентираното програмиране. Тази концепция предлага стандартни решения за архитектурни и концептуални проблеми в компютърното програмиране.
Тук не става въпрос за конкренти алгоритми или част от програмен код. Шаблоните за дизайн са независими от програмния език. Те представляват архитектурни решения на вече познати и много често срещани проблеми в програмирането. Може да се каже, че шаблоните за дизайн представляват средство за прилагане на световния опит на програмисти и аналитици.
Поведенчески шаблони [редактиране]
| Наименование |
Описание |
В книгата Шаблони за дизайн (Design Patterns) |
В Code Complete |
| Верига отговорности (Chain of Responsibility) |
|
 |
 |
| Команда (Command) |
Капсулира дадена заявка във вид на обект. Това позволява свързването на клиента с различни заявки или опашки, както и поддръжка на функция за връщане на промените (undo). |
 |
 |
| Интерпретатор (Interpreter) |
Даден език дефинира своята граманика, също така и интерпретатор, който използва граматиката, за да интерпретира изречения написани на този език. |
 |
 |
| Итератор (Iterator) |
Предоставя начин за последователен достъп до елементите на обект, без да е нужна вътрешна информация за обекта. |
 |
 |
| Посредник (Mediator) |
|
 |
 |
| Спомен (Memento) |
Без да нарушава капсулацията на даден обект, прихваща и изважда вътрешното му състояние с цел да бъде възвърнато това състояние в по-късен етап. |
 |
 |
| Празен обект (Null Object) |
Проектиран е да действа като стойност по подразбиране на даден обект. |
 |
 |
| Наблюдател (Observer) |
Дефинира зависимост "един към много" между обектите, така че ако един обект промени състоянието си, всички зависими от него обекти да бъдат известени и обновени автоматично. |
 |
 |
| Състояние (State) |
Позволява на даден обект да променя поведението си при промяна на вътрешното му състояние. Изглежда все едно обектът е променил класа си. |
 |
 |
| Стратегия (Strategy) |
Дефинира семейство от капсулирани алгоритми и ги прави взаемозаменими. Стратегията позволява промяна на алгоритмите, независимо от клиента, който ги използва. |
 |
 |
| Спецификация (Specification) |
|
 |
 |
| Шаблонен метод (Template method) |
Дефинира скелет на алгоритъм в дадена операция, като оставя някои стъпки за подкласовете. Шаблонният метод позволява на подкласовете да предефинират някои стъпки на даден алгоритъм, без да променят структурата му. |
 |
 |
| Посетител (Visitor) |
Посетителят предоставя възможност за дефиниране на нова операция, без да се променя класа на елемента върху който се извършва операцията. |
 |
 |
Архитектурни шаблони [редактиране]
- Шаблони за дизайн, Design Patterns - Ерик Гама, Ричард Хелм, Ралф Джонсън, 2005, издателство СофтПрес. ISBN 9546853526
- Английска, френска и руска версия на Уикипедия