Автор: <span>admin</span>

Паттерны

Factory Method и Abstract Factory

Введение Статья Singleton показала что для контроля создания единственного экземпляра — Factory Method и Abstract Factory решают другую, но связанную задачу: инкапсуляцию ЛОГИКИ создания объектов, особенно когда конкретный…

Паттерны

Singleton: реализация, потокобезопасность, критика паттерна

Введение Singleton — вероятно, самый известный (и одновременно самый критикуемый) паттерн из всех — гарантирует существование ровно ОДНОГО экземпляра класса на протяжении всей программы с глобальной точкой доступа…

Паттерны

Обзор паттернов проектирования: зачем нужны, GoF классификация, антипаттерны

Введение Цикл синтаксиса C/C++ разобрал ООП-инструменты языка — наследование, виртуальные функции, шаблоны — но не systematized, как именно эти инструменты комбинируются для решения типичных, повторяющихся архитектурных задач. Паттерны…

Паттерны

Bridge: разделение абстракции и реализации

Введение Завершаем блок структурных паттернов темой Bridge — паттерном, решающим задачу избежания «взрыва» количества классов при попытке комбинировать две независимо изменяющиеся «оси» вариативности (например, разные виды UI-элементов и…

Алгоритмы

Composite: древовидные структуры объектов

Введение Многие реальные предметные области естественно моделируются как иерархия «часть-целое» — файловая система (директории, содержащие файлы и другие директории), графический интерфейс (контейнеры виджетов, содержащие другие виджеты, статьи QML-цикла…

Алгоритмы

Facade: упрощение сложного API через единый интерфейс

Введение Сложная подсистема (множество взаимодействующих классов, или сторонняя библиотека с богатым, многогранным API, CMake/OpenCV) может быть избыточно сложной для типичного, повседневного использования — Facade предоставляет упрощённый, единый интерфейс…

Алгоритмы

Decorator: динамическое расширение поведения объекта

Введение Наследование — стандартный способ расширения поведения класса, но он статичен (определяется на этапе компиляции и применяется ко ВСЕМ экземплярам производного класса одинаково) — Decorator решает задачу ДИНАМИЧЕСКОГО,…

Алгоритмы

Adapter: согласование несовместимых интерфейсов

Введение Открываем блок структурных паттернов темой Adapter — одним из самых практически частых паттернов, решающим простую, но регулярно встречающуюся задачу: использование класса с интерфейсом, несовместимым с тем, что…

Алгоритмы

Template Method и Visitor

Введение В этой статье разберём два паттерна одновременно — Template Method (определение общего «скелета» алгоритма с настраиваемыми шагами через переопределение в подклассах) и Visitor (добавление новых операций к…