Введение Статья Singleton показала что для контроля создания единственного экземпляра — Factory Method и Abstract Factory решают другую, но связанную задачу: инкапсуляцию ЛОГИКИ создания объектов, особенно когда конкретный…
Введение Singleton — вероятно, самый известный (и одновременно самый критикуемый) паттерн из всех — гарантирует существование ровно ОДНОГО экземпляра класса на протяжении всей программы с глобальной точкой доступа…
Введение Цикл синтаксиса C/C++ разобрал ООП-инструменты языка — наследование, виртуальные функции, шаблоны — но не systematized, как именно эти инструменты комбинируются для решения типичных, повторяющихся архитектурных задач. Паттерны…
Введение Завершаем блок структурных паттернов темой Bridge — паттерном, решающим задачу избежания «взрыва» количества классов при попытке комбинировать две независимо изменяющиеся «оси» вариативности (например, разные виды UI-элементов и…
Введение Иногда нужен объект, который выглядит и используется точно так же, как реальный, целевой объект, но при этом контролирует доступ к этому целевому объекту — откладывая его реальное…
Введение Многие реальные предметные области естественно моделируются как иерархия «часть-целое» — файловая система (директории, содержащие файлы и другие директории), графический интерфейс (контейнеры виджетов, содержащие другие виджеты, статьи QML-цикла…
Введение Сложная подсистема (множество взаимодействующих классов, или сторонняя библиотека с богатым, многогранным API, CMake/OpenCV) может быть избыточно сложной для типичного, повседневного использования — Facade предоставляет упрощённый, единый интерфейс…
Введение Наследование — стандартный способ расширения поведения класса, но он статичен (определяется на этапе компиляции и применяется ко ВСЕМ экземплярам производного класса одинаково) — Decorator решает задачу ДИНАМИЧЕСКОГО,…
Введение Открываем блок структурных паттернов темой Adapter — одним из самых практически частых паттернов, решающим простую, но регулярно встречающуюся задачу: использование класса с интерфейсом, несовместимым с тем, что…
Введение В этой статье разберём два паттерна одновременно — Template Method (определение общего «скелета» алгоритма с настраиваемыми шагами через переопределение в подклассах) и Visitor (добавление новых операций к…
Нравится qthelper.ru? 💚
Сайт живёт без пейволов и обязательной подписки. Если статьи помогают вам в работе — поддержите проект.