Skip to content
IRC-CodingIRC-Coding
SingletonObserverFactoryAdapterFassadeProxy

Паттерны проектирования: Singleton, Observer, Factory

Singleton, Observer, Factory, Adapter, Fassade, Proxy: назначение, примеры на Java, плюсы и минусы.

S

schutzgeist

1 min read
Паттерны проектирования: Singleton, Observer, Factory

Singleton, Observer, Factory, Adapter, Fassade, Proxy

Этот материал объясняет шесть распространённых паттернов с примерами, вопросами и практическими ситуациями.

В двух словах

Паттерны проектирования предлагают проверенные решения для типичных задач архитектуры и взаимодействия компонентов.

Краткое описание

  • Singleton: только один экземпляр (например, конфигурация или логгер)
  • Observer: модель Publish/Subscribe для событий (например, UI)
  • Factory: инкапсулирует создание объектов
  • Adapter: адаптирует несовместимые интерфейсы друг к другу
  • Fassade: предоставляет простой API для сложной подсистемы
  • Proxy: представитель для контроля доступа, кэширования, логирования и ленивой загрузки

Ключевые пункты для подготовки

  • Singleton: один экземпляр, глобальный доступ
  • Observer: развязывание обработчиков событий
  • Factory: гибкое создание объектов
  • Adapter: интеграция несовместимых компонентов
  • Fassade: упрощённый интерфейс
  • Proxy: контроль доступа и кэширование
  • Задавайте себе вопрос, почему вы выбираете каждый паттерн

Основные компоненты

  1. Конструктор Singleton
  2. Интерфейс Observer
  3. Метод create() в Factory
  4. Маппинг в Adapter
  5. API Fassade
  6. Контроль доступа в Proxy

Практический пример (Singleton на Java)

public class ConfigManager {
  private static ConfigManager instance;
  private ConfigManager() {}
  public static ConfigManager getInstance() {
    if (instance == null) {
      instance = new ConfigManager();
    }
    return instance;
  }
}

Плюсы и минусы

Плюсы

  • Переиспользуемые, проверенные решения
  • Знакомая структура кода для команды
  • Лучше передача знания между разработчиками

Минусы

  • Неправильное применение добавляет сложность
  • Singleton усложняет тестирование
  • Observer может создать цепные реакции событий

Типичные вопросы на экзамене (с кратким ответом)

  1. Цель Singleton? Гарантировать ровно один экземпляр класса.
  2. Когда использовать Observer? Когда много объектов должны реагировать на изменение состояния.
  3. Зачем Factory вместо прямого new? Чтобы централизовать и изолировать логику создания объектов.

Дополнительные ресурсы

  1. https://refactoring.guru/design-patterns
  2. https://github.com/iluwatar/java-design-patterns
Назад к блогу
Share:

Nächster Artikel in Архитектура программного обеспечения

Weiterlesen
Pipes and Filters: архитектурный паттерн

Похожие статьи