Factory Method: Использовался для создания объектов различных типов внутри родительского класса, делегируя создание подклассам. Это позволяло сделать код более гибким при добавлении новых подтипов.
java
Observer: Применялся для реализации системы подписки/уведомления, где один объект (издатель) уведомляет множество зависимых объектов (подписчиков) об изменении своего состояния.
java
Strategy: Использовался для определения семейства алгоритмов, инкапсуляции каждого из них и возможности их взаимозаменяемости. Это позволяет клиенту выбирать алгоритм на лету.
java
Decorator: Применялся для динамического добавления обязанностей к объектам, сохраняя ту же сигнатуру. Это гибкая альтернатива наследованию для расширения функциональности.
java
Template Method: Использовался для определения скелета алгоритма в суперклассе, позволяя подклассам переопределять конкретные шаги без изменения общей структуры алгоритма.
java
Также сталкивался с применением Dependency Injection (часто реализуется фреймворками, но понимание принципов важно).