Evgenii Legotckoi
1 октября 2018 г. 14:34

Шаблоны проектированияСтруктурные шаблоны проектирования - Приспособленец

шаблоны проектирования, приспособленец, flyweight

Цели

  • Использование общего доступа для эффективного использования большого количества объектов.
  • Стратегия GUI Motif по замене тяжеловесных виджетов легкими виджетами.

Проблематика

Проектирование объектов вплоть до самых низких уровней «гранулярности» системы обеспечивает оптимальную гибкость, но может быть неприемлемо дорогим с точки зрения …

Читать
Evgenii Legotckoi
26 сентября 2018 г. 17:55

PythonПример - Объектный пул на Python

python, pool, пул, шаблоны проектирования

Пример шаблона проектирования Объектный пул на языке программирования Python.


  1. """
  2. Offer a significant performance boost; it is most effective in
  3. situations where the cost of initializing a class instance is high, the
  4. rate of instantiation of a class is high, …
Читать
Evgenii Legotckoi
26 сентября 2018 г. 17:53

JavaПример - Объектный пул на Java

Java, пул, шаблоны проектирования

Пример шаблона проектирования Объектный пул на языке программирования Java.


  1. // ObjectPool Class
  2.  
  3. public abstract class ObjectPool<T> {
  4. private long expirationTime;
  5.  
  6. private Hashtable<T, Long> locked, unlocked;
  7.  
  8. public ObjectPool() {
  9. expirationTime = 30000; // 30 seconds
  10. locked = new Hashtable<T, Long>();
  11. unlocked
Читать
Evgenii Legotckoi
26 сентября 2018 г. 16:55

C++Пример - Объектный пул на C++

шаблоны проектирования, пул, C++

Пример шаблона проектирования Объектный пул на языке программирования C++.


  1. #include <string>
  2. #include <iostream>
  3. #include <list>
  4. class Resource
  5. {
  6. int value;
  7. public:
  8. Resource()
  9. {
  10. value = 0;
  11. }
  12. void reset()
  13. {
  14. value = 0;
  15. }
  16. int getValue()
  17. {
  18. return value;
  19. }
Читать
Evgenii Legotckoi
26 сентября 2018 г. 16:01

Шаблоны проектированияСтруктурные шаблоны проектирования - Декоратор

шаблоны проектирования, decorator, декоратор

Цели

  • Добавить дополнительные возможности и функционал к объекту динамически. Декораторы обеспечивают гибкую альтернативу подклассу для расширения функциональности.
  • Указанное клиентом декорирование интерфейса основного объекта путем его рекурсивной упаковки.
  • Оберните подарок, положите его в коробку и оберните коробку.

Проблематика

Вы хотите добавить …

Читать
Evgenii Legotckoi
25 сентября 2018 г. 16:16

PHPПример - Фабричный метод на PHP

шаблоны проектирования, factory, method, PHP

В шаблоне Factory Method, фабричный метод определяет, какие функции должны быть доступны не абстрактной конкретной фабрике. Эти функции должны иметь возможность создавать объекты, которые являются расширениями определенного класса. Какой именно подкласс создается, будет зависеть от значения параметра, переданного функции.

В …

Читать
Evgenii Legotckoi
25 сентября 2018 г. 16:09

DelphiПример - Фабричный метод на Delphi

Delphi, шаблоны проектирования, factory, method

Этот шаблон полезен, если вы хотите инкапсулировать создание класса и изолировать информацию о конкретном классе от клиентского приложения через абстрактный интерфейс.

Один из примеров этого может возникнуть, если у вас есть объектно-ориентированное бизнес-приложение, потенциально связанное с несколькими целевыми СУБД. Клиентское …

Читать
Evgenii Legotckoi
25 сентября 2018 г. 15:46

Шаблоны проектированияСтруктурные шаблоны проектирования - Компоновщик

шаблоны проектирования, composite, компоновщик

Цели

  • Составить объекты в древовидные структуры для представления целых частей иерархии. Компоновщик позволяет клиентам одинаково обрабатывать отдельные объекты и композиции объектов.
  • Рекурсивная композиция
  • «Каталоги содержат записи, каждый из которых может быть каталогом».
  • Представление иерархии один ко многим

Проблематика

Приложению необходимо …

Читать
Evgenii Legotckoi
24 сентября 2018 г. 20:43

PythonПример - Фабричный метод на Python

шаблоны проектирования, factory, Python, method

Пример фабричного метода на языке программирования Python


  1. """
  2. Define an interface for creating an object, but let subclasses decide
  3. which class to instantiate. Factory Method lets a class defer
  4. instantiation to subclasses.
  5. """
  6.  
  7. import abc
  8.  
  9.  
  10. class Creator(metaclass=abc.ABCMeta):
  11. """
  12. Declare the …
Читать
Evgenii Legotckoi
24 сентября 2018 г. 20:34

JavaПример - Фабричный метод на Java

шаблоны проектирования, factory, method, Java, JAVA

В программировании на основе классов шаблон фабричного метода представляет собой шаблон создания, который использует фабричные методы для решения проблемы создания объектов без указания точного класса объекта, который будет создан. Это делается путем создания объектов через вызов фабричного метода - либо …

Читать