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