Вкратце по шаблонам проектирования
Почему шаблоны проектирования важны?
1. Возможность повторного использования
* Проверенные решения, которые работают в разных проектах
2. Гибкость
* Способствуют слабой связности компонентов и упрощают поддержку
3. Коммуникация
* Создают общий язык для обсуждения проблем проектирования и их решений
4. Опыт
* Инкапсулируют опыт опытных разработчиков, помогая другим избегать типичных ошибок и создавать более качественное ПО
Рассмотрим основные задачи которые решают шаблоны.
Порождающие шаблоны
1. Абстрактная фабрика
* Создаёт семейства взаимосвязанных объектов через общий интерфейс
2. Строитель
* Разделяет построение сложного объекта от его представления
3. Фабричный метод
* Определяет интерфейс для создания объектов
* Позволяет подклассам выбирать конкретный класс для создания
4. Прототип
* Создаёт новые объекты путём копирования прототипа
5. Одиночка
* Гарантирует, что класс имеет только один экземпляр
Структурные шаблоны
6. Адаптер
* Преобразует один интерфейс в другой, позволяя несовместимым классам работать вместе
7. Мост
* Разделяет абстракцию и реализацию, позволяя им изменяться независимо
8. Компоновщик
* Обрабатывает отдельные объекты и их композиции единообразно, представляя иерархии часть-целое
9. Декоратор
* Динамически добавляет функциональность объекту без использования наследования
10. Фасад
* Предоставляет упрощённый интерфейс к сложной подсистеме
11. Лёгковес
* Разделяет объекты для уменьшения использования памяти при большом количестве мелких объектов
12. Заместитель
* Контролирует доступ к объекту, предоставляя различные возможности, такие как отложенная загрузка или удалённый доступ
Поведенческие шаблоны
13. Цепочка ответственности
* Разделяет отправителей и получателей запросов, позволяя нескольким объектам обрабатывать запрос
14. Команда
* Инкапсулирует запросы в объекты, позволяя вести логирование, создавать очереди и выполнять операции отмены/повтора
15. Интерпретатор
* Определяет грамматику языка и интерпретатор для выполнения выражений
16. Итератор
* Обеспечивает последовательный доступ к элементам агрегата без раскрытия внутреннего представления
17. Посредник
* Инкапсулирует взаимодействие объектов, способствуя слабой связности
18. Хранитель
* Сохраняет и восстанавливает состояние объекта без нарушения инкапсуляции
19. Наблюдатель
* Автоматически уведомляет зависимые объекты при изменении состояния
20. Состояние
* Изменяет поведение объекта при изменении его внутреннего состояния
21. Стратегия
* Инкапсулирует взаимозаменяемые алгоритмы, позволяя клиентам выбирать их динамически
22. Шаблонный метод
* Определяет скелет алгоритма, откладывая шаги реализации на подклассы
23. Посетитель
* Добавляет новые операции к структурам объектов без изменения классов элементов
Post #2354
1.65K
- 👍 10
- 🔥 7
- 🤓 5
- 👏 1