TGViewer
Java Portal | Программирование Java Portal | Программирование @java_iibrary · 11.6K subscribers
Post #1598 3.5K
Мини руководство по паттернам проектирования

🔸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
  • ❤ 15
  • 👍 7
More from @java_iibrary
  1. Sep 30, 2026Почему один и тот же Java-файл .class запускается на Windows, Linux и macOS без перекомпил…
  2. Sep 30, 2026Docker прост, пока всё работает. Но что делать, если контейнер постоянно перезапускается,…
  3. Sep 29, 2026Эволюция языков программирования 1940-е → Машинный код ⬇️ 1950-е → Ассемблер ⬇️ 1960-е → F…
  4. Sep 29, 2026Большинство Java-разработчиков используют эти термины каждый день. Удивительно, но многие…
  5. Sep 28, 2026💡 Java: не создавайте ресурсоёмкие объекты, пока они действительно не понадобятся. ✅ Иниц…
  6. Sep 28, 2026Проблема в продакшене. Приложение зависло. Вы запускаете: jstack <pid> Через несколько сек…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →