Junior
60
questionbank

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

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech
  • Порождающие

    • Фабричный метод (способ создания объектов через фабричный метод, а не напрямую через конструктор)
    • Абстрактная фабрика (интерфейс для создания семейств связанных объектов без указания их конкретных классов)
    • Строитель (пошаговое создание сложных объектов, позволяя получить разные варианты объекта, используя один и тот же код строительства)
    • Прототип (создание новых объектов путем копирования существующего образца)
    • Одиночка (гарантирует наличие только одного экземпляра класса и предоставляет к нему глобальную точку доступа)
  • Структурные

    • Адаптер (позволяет объектам с несовместимыми интерфейсами работать вместе)
    • Мост (разделяет абстракцию и реализацию, позволяя им изменяться независимо)
    • Компоновщик (позволяет трактовать отдельные объекты и их группы одинаково)
    • Декоратор (динамически добавляет объектам новые обязанности)
    • Фасад (предоставляет унифицированный интерфейс к набору интерфейсов подсистемы)
    • Приспособленец (эффективно управляет большим количеством мелких объектов)
    • Заместитель (предоставляет объект-заместитель, контролирующий доступ к другому объекту)
  • Поведенческие

    • Цепочка обязанностей (передает запросы по цепочке обработчиков)
    • Команда (инкапсулирует запрос как объект, позволяя параметризовать клиентов, ставить запросы в очередь, логировать их и поддерживать отмену операций)
    • Итератор (предоставляет способ последовательного доступа ко всем элементам составного объекта, не раскрывая его внутреннего представления)
    • Посредник (упрощает взаимодействие между множеством объектов, вводя объект-посредник)
    • Хранитель (позволяет сохранить и восстановить внутреннее состояние объекта, не нарушая его инкапсуляции)
    • Наблюдатель (определяет зависимость между объектами "один ко многим", так что при изменении состояния одного объекта все зависящие оповещаются и обновляются автоматически)
    • Состояние (позволяет объекту изменять свое поведение в зависимости от внутреннего состояния)
    • Стратегия (определяет семейство алгоритмов, инкапсулирует каждый из них и делает их взаимозаменяемыми)
    • Шаблонный метод (в базовом классе определяет скелет алгоритма в методе, позволяя подклассам переопределять некоторые шаги алгоритма без изменения его структуры в целом)
    • Посетитель (позволяет добавлять новые операции к иерархии классов без изменения самих классов)

В Android-разработке часто используются MVx-шаблоны (MVP, MVVM), а также шаблоны из библиотеки Android Architecture Components (Room, ViewModel, LiveData, Navigation).