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