Назад к вопросам
Junior
68
questionbank

Какие шаблоны проектирования ты знаешь?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech 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: представляет операцию, выполняемую над элементами структуры объектов.

Также знаком с паттернами GRASP (General Responsibility Assignment Software Patterns).