Шаблоны проектирования → Структурные шаблоны проектирования - Приспособленец
шаблоны проектирования, приспособленец, flyweight
Цели
- Использование общего доступа для эффективного использования большого количества объектов.
- Стратегия GUI Motif по замене тяжеловесных виджетов легкими виджетами.
Проблематика
Проектирование объектов вплоть до самых низких уровней «гранулярности» системы обеспечивает оптимальную гибкость, но может быть неприемлемо дорогим с точки зрения …
Python → Пример - Объектный пул на Python
python, pool, пул, шаблоны проектирования
Пример шаблона проектирования Объектный пул на языке программирования Python.
- """
- Offer a significant performance boost; it is most effective in
- situations where the cost of initializing a class instance is high, the
- rate of instantiation of a class is high, …
Java → Пример - Объектный пул на Java
Java, пул, шаблоны проектирования
Пример шаблона проектирования Объектный пул на языке программирования Java.
- // ObjectPool Class
- public abstract class ObjectPool<T> {
- private long expirationTime;
- private Hashtable<T, Long> locked, unlocked;
- public ObjectPool() {
- expirationTime = 30000; // 30 seconds
- locked = new Hashtable<T, Long>();
- unlocked …
C++ → Пример - Объектный пул на C++
шаблоны проектирования, пул, C++
Пример шаблона проектирования Объектный пул на языке программирования C++.
- #include <string>
- #include <iostream>
- #include <list>
- class Resource
- {
- int value;
- public:
- Resource()
- {
- value = 0;
- }
- void reset()
- {
- value = 0;
- }
- int getValue()
- {
- return value;
- } …
Шаблоны проектирования → Структурные шаблоны проектирования - Декоратор
шаблоны проектирования, decorator, декоратор
Цели
- Добавить дополнительные возможности и функционал к объекту динамически. Декораторы обеспечивают гибкую альтернативу подклассу для расширения функциональности.
- Указанное клиентом декорирование интерфейса основного объекта путем его рекурсивной упаковки.
- Оберните подарок, положите его в коробку и оберните коробку.
Проблематика
Вы хотите добавить …
PHP → Пример - Фабричный метод на PHP
шаблоны проектирования, factory, method, PHP
В шаблоне Factory Method, фабричный метод определяет, какие функции должны быть доступны не абстрактной конкретной фабрике. Эти функции должны иметь возможность создавать объекты, которые являются расширениями определенного класса. Какой именно подкласс создается, будет зависеть от значения параметра, переданного функции.
В …
Delphi → Пример - Фабричный метод на Delphi
Delphi, шаблоны проектирования, factory, method
Этот шаблон полезен, если вы хотите инкапсулировать создание класса и изолировать информацию о конкретном классе от клиентского приложения через абстрактный интерфейс.
Один из примеров этого может возникнуть, если у вас есть объектно-ориентированное бизнес-приложение, потенциально связанное с несколькими целевыми СУБД. Клиентское …
Шаблоны проектирования → Структурные шаблоны проектирования - Компоновщик
шаблоны проектирования, composite, компоновщик
Цели
- Составить объекты в древовидные структуры для представления целых частей иерархии. Компоновщик позволяет клиентам одинаково обрабатывать отдельные объекты и композиции объектов.
- Рекурсивная композиция
- «Каталоги содержат записи, каждый из которых может быть каталогом».
- Представление иерархии один ко многим
Проблематика
Приложению необходимо …
Python → Пример - Фабричный метод на Python
шаблоны проектирования, factory, Python, method
Пример фабричного метода на языке программирования Python
- """
- Define an interface for creating an object, but let subclasses decide
- which class to instantiate. Factory Method lets a class defer
- instantiation to subclasses.
- """
- import abc
- class Creator(metaclass=abc.ABCMeta):
- """
- Declare the …
Java → Пример - Фабричный метод на Java
шаблоны проектирования, factory, method, Java, JAVA
В программировании на основе классов шаблон фабричного метода представляет собой шаблон создания, который использует фабричные методы для решения проблемы создания объектов без указания точного класса объекта, который будет создан. Это делается путем создания объектов через вызов фабричного метода - либо …
- Последние комментарии
- AK24 апреля 2025 г. 12:04UPD: Переписал логику воспроизведения через стороннюю библиотеку BASS. Там выбрать можно
- AK1 апреля 2025 г. 11:41Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- Сейчас обсуждают на форуме
- DT14 апреля 2025 г. 15:38Всем привет! На Qt 6.8 MinGW пытаюсь сделать управление подключением WiFi из программы. Пока делаю поддержку Windows, но так же хочу в дальнейшем внедрить и поддержку Linux/MacOS. Для…
- f15 февраля 2025 г. 13:46Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…