Sobes.tech
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: Представлява операция, която трябва да бъде изпълнена върху елементите на структурата от обекти. Позволява дефиниране на нови операции, без да се променят класовете на елементите, върху които действа.