Паттерны проектирования
Паттерны проектирования в Java можно разделить на три основных типа.
Порождающие. Связаны с процессом создания объектов и обеспечивают гибкость и повторное использование кода. Примеры: Singleton, Factory Method, Abstract Factory, Builder, Prototype.
Структурные. Определяют способы композиции классов и объектов для создания новых структур. Примеры: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy.
Поведенческие. Определяют взаимодействие между объектами и облегчают обмен информацией между ними. Примеры: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor.
Примеры паттернов каждого типа:
Порождающие: «Одиночка» (Singleton) гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа. «Строитель» (Builder) позволяет создавать сложные объекты пошагово.
Структурные: «Адаптер» позволяет объектам с несовместимыми интерфейсами работать вместе. «Мост» разделяет один или несколько классов на две отдельные иерархии — абстракцию и реализацию, позволяя изменять их независимо друг от друга.
Поведенческие: «Наблюдатель» создаёт механизм подписки, позволяющий одним объектам следить и реагировать на события, происходящие в других объектах. «Стратегия» определяет семейство схожих алгоритмов и помещает каждый из них в собственный класс, после чего алгоритмы можно взаимозаменять прямо во время исполнения программы.