Мини руководство по паттернам проектирования
🔸Singleton
Реализация: статический экземпляр + приватный конструктор
Пример: логгер, менеджер конфигурации, пул подключений к БД
🔸Factory
Реализация: метод create(String type) возвращает нужный подкласс
Пример: парсеры файлов (.json, .xml), отправка уведомлений
🔸Abstract Factory
Реализация: интерфейс для создания связанных объектов без указания их классов
Пример: UI-темы (тёмная/светлая), фабрики виджетов операционной системы
🔸Builder
Реализация: цепочка вызовов .set() + .build()
Пример: создание сложных объектов, например HTTP-запросов
🔸Prototype
Реализация: клонирование существующего объекта через .clone()
Пример: игровые персонажи, шаблоны документов, клоны интерфейсов
🔸Strategy
Реализация: интерфейс + метод setStrategy()
Пример: алгоритмы сортировки, платёжные процессоры
🔸Observer
Реализация: список подписчиков + цикл notifyAll()
Пример: система событий, UI-слушатели, подписки на YouTube
🔸Decorator
Реализация: обёртка над объектом + добавление поведения на лету
Пример: логгирование, сжатие, кэширование
🔸Adapter
Реализация: класс-обёртка, преобразующий интерфейс
Пример: интеграция с легаси API, InputStreamReader
🔸Facade
Реализация: один класс делегирует вызовы нескольким подсистемам
Пример: java.util.logging, фасад медиаплеера
🔸Command
Реализация: инкапсуляция действия в объект с методом execute()
Пример: Undo/Redo, обработка нажатий кнопок
🔸Chain of Responsibility
Реализация: каждый обработчик решает — обработать или передать дальше
Пример: эскалация тикетов в техподдержке, всплытие событий (event bubbling)
🔸Template Method
Реализация: базовый класс задаёт общий алгоритм, подклассы переопределяют шаги
Пример: обработка онлайн-заказа — оплата → подтверждение → доставка
🔸State
Реализация: поведение определяется текущим объектом состояния
Пример: состояния медиаплеера — воспроизведение/пауза/стоп
🔸Mediator
Реализация: центральный объект управляет взаимодействием компонентов
Пример: менеджер чата, валидация форм в UI
🔸Memento
Реализация: сохранение и восстановление внутреннего состояния объекта
Пример: история изменений, снапшоты состояния в текстовом редакторе
🔸Visitor
Реализация: внешний класс выполняет операции над элементами структуры
Пример: обход файловой системы, обработка AST
🔸Proxy
Реализация: обёртка над реальным объектом для контроля доступа или производительности
Пример: ленивая загрузка, контроль доступа, удалённые прокси
🔸Composite
Реализация: древовидная структура, где элементы и группы обрабатываются одинаково
Пример: иерархия файлов и папок, UI-компоненты
🔸Flyweight
Реализация: повторное использование объектов с общим внутренним состоянием
Пример: глифы шрифта, иконки интерфейса, текстуры в играх
🔸Bridge
Реализация: разделение абстракции и реализации
Пример: представление UI → движок отрисовки (SVG, Canvas и т.д.)
👉 Java Portal
Post #1598
3.5K

- ❤ 15
- 👍 7