Middle
Кои шаблони за проектиране знаете?
sobes.tech AI
Отговор от AI
Създаващи:
- Фабричен метод (Factory Method): Определя интерфейс за създаване на обект, но позволява на подкласовете да решат кой клас да инстанцират.
- Абстрактна фабрика (Abstract Factory): Предоставя интерфейс за създаване на семейства от взаимосвързани или зависими обекти без да уточнява конкретните им класове.
- Строител (Builder): Разделя конструирането на сложен обект от неговото представяне, позволявайки същият процес на конструиране да създава различни представяния.
- Прототип (Prototype): Създава нови обекти чрез копиране на съществуващ екземпляр.
- Одиночка (Singleton): Гарантира, че класът има само един екземпляр и предоставя глобална точка за достъп до него.
Структурни:
- Адаптер (Adapter): Преобразува интерфейса на един клас в друг, който очакват клиентите.
- Мост (Bridge): Разделя абстракцията от нейното реализиране, за да могат да се променят независимо.
- Композит (Composite): Комбинира обекти в дървовидни структури за представяне на йерархии част-цяло. Позволява на клиентите да работят с отделни обекти и техните композиции по един и същ начин.
- Декоратор (Decorator): Динамично добавя нови отговорности към обект. Еластична алтернатива на наследяването за разширяване на функционалността.
- Фасада (Facade): Предоставя унифициран интерфейс към набор от интерфейси на подсистемата. Прави подсистемата по-лесна за използване.
- Flyweight (Flyweight): Използва се за ефективно споделяне на голям брой подобни обекти.
- Прокси (Proxy): Предоставя заместителен обект, който контролира достъпа до друг обект.
Поведенчески:
- Верига от отговорности (Chain of Responsibility): Позволява предаване на заявки последователно по веригата от обработващи. Всеки обработващ решава дали да обработи заявката или да я предаде нататък.
- Команда (Command): Инкапсулира заявка като обект, позволявайки на клиентите да параметризират различни заявки, да ги поставят в опашка или да ги регистрират, както и да поддържат операции за отменяне.
- Итератор (Iterator): Предоставя начин за последователен достъп до елементите на сложен обект без да разкрива неговата вътрешна структура.
- Посредник (Mediator): Определя обект, който инкапсулира начина, по който взаимодействат набор от обекти. Насърчава слака свързаност, предотвратявайки явните препратки между обектите.
- Мемто (Memento): Записва и външно съхранява вътрешното състояние на обект, без да нарушава инкапсулацията, така че обектът да може да бъде възстановен в това състояние по-късно.
- Наблюдател (Observer): Определя зависимост "един към много" между обекти така, че при промяна на състоянието на един, всички зависими от него се уведомяват и автоматично се актуализират.
- Състояние (State): Позволява на обект да променя поведението си при промяна на вътрешното си състояние. Изглежда, сякаш променя класа си.
- Стратегия (Strategy): Определя семейство алгоритми, капсулира всеки и ги прави взаимозаменяеми. Позволява алгоритъмът да се променя независимо от клиентите, които го използват.
- Шаблонен метод (Template Method): Определя скелета на алгоритъм в операция, отлага някои стъпки към подкласове. Позволява на подкласовете да преназначават някои стъпки на алгоритъма, без да променят неговата структура.
- Посетител (Visitor): Представлява операция, която трябва да бъде изпълнена върху елементите на структурата от обекти. Позволява да се дефинира нова операция без да се променят класовете на елементите, върху които работи.