Singleton, Observer, Factory, Adapter, Fassade, Proxy
Этот материал объясняет шесть распространённых паттернов с примерами, вопросами и практическими ситуациями.
В двух словах
Паттерны проектирования предлагают проверенные решения для типичных задач архитектуры и взаимодействия компонентов.
Краткое описание
- Singleton: только один экземпляр (например, конфигурация или логгер)
- Observer: модель Publish/Subscribe для событий (например, UI)
- Factory: инкапсулирует создание объектов
- Adapter: адаптирует несовместимые интерфейсы друг к другу
- Fassade: предоставляет простой API для сложной подсистемы
- Proxy: представитель для контроля доступа, кэширования, логирования и ленивой загрузки
Ключевые пункты для подготовки
- Singleton: один экземпляр, глобальный доступ
- Observer: развязывание обработчиков событий
- Factory: гибкое создание объектов
- Adapter: интеграция несовместимых компонентов
- Fassade: упрощённый интерфейс
- Proxy: контроль доступа и кэширование
- Задавайте себе вопрос, почему вы выбираете каждый паттерн
Основные компоненты
- Конструктор Singleton
- Интерфейс Observer
- Метод
create()в Factory - Маппинг в Adapter
- API Fassade
- Контроль доступа в 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 может создать цепные реакции событий
Типичные вопросы на экзамене (с кратким ответом)
- Цель Singleton? Гарантировать ровно один экземпляр класса.
- Когда использовать Observer? Когда много объектов должны реагировать на изменение состояния.
- Зачем Factory вместо прямого
new? Чтобы централизовать и изолировать логику создания объектов.



