Паттерны объектно-ориентированного проектирования (Design Patterns: Elements of Reusable Object-Oriented Software)
Почти 30 лет назад вышла классическая книга "Design Patterns" от Банды Четырех (Гамма Э., Влиссидес Дж., Джонсон Р. , Хелм Р.). Я прочитал ее в первый раз еще в 2006 году и перечитывал несколько раз с того времени. Помню как мне понравилась структура самого паттерна, как повторяемой архитектурной конструкции в, предлагающая решение проблемы проектирования в рамках некоторого часто возникающего контекста. Плюс интересна была таксономия паттернов по категориям
- Creational patterns - порождающие паттерны, как удобно и безопасно создавать объекты, группы объектов. Примеры шаблонов: абстрактная фабрика, фабричный метод, прототип, singleton, ...
- Structural patterns - структурные паттерны, как строить удобные в поддержке структуры классов. Примеры шаблонов: адаптер, bridge, декоратор, прокси, фасад, ...
- Behavioral patterns - поведенческие паттерны, как организовывать эффективное взаимодействие между объектами. Примеры шаблонов: команда, стратегия, шаблонный метод, visitor, iterator, observer, состояние, ... По-факту, этот набор шаблонов стал некоторым ubiquitous language для разработчиков при размышлении про проектирование приложений. Сейчас эта книга является актуальной с точки зрения концепции, но вот примеры с кодом на Smalltalk явно сильно устарели:) Но я ее все равно рекомендую почитать:)
P.S. Если сделать лирическое отступление, то сам подход родился в 1970х года, когда Кристофер Александер написал книгу про архитектурные шаблоны «Язык шаблонов. Города. Здания. Строительство». Ну а в IT все полетело после того, как Банда Четырех написала книгу, которую мы вспоминаем сейчас:)
#Patterns #Software #SoftwareArchitecture #SoftwareDevelopment #Architecture #SystemDesign