Мухи против шаблонов пула объектов: когда каждый из них полезен? - PullRequest
20 голосов
/ 17 февраля 2012

Насколько я знаю, пул объектов - это творческий паттерн, а вес - это структурный паттерн, но на самом деле я не вижу большой разницы между ними. Может кто-нибудь объяснить мне разницу и когда каждый из них может быть полезен в реализации?

Ответы [ 3 ]

29 голосов
/ 17 февраля 2012

Одно отличие в том, что маховики обычно являются неизменяемыми экземплярами, тогда как ресурсы, полученные из пула, обычно являются изменяемыми.

Таким образом, вы создаете маховики, чтобы избежать затрат на повторное создание нескольких экземпляров объектов, содержащих одно и то же состояние (посколькуони все одинаковые, вы просто создаете только один и повторно используете его во всех местах вашего приложения), в то время как ресурсы в пуле - это особые ресурсы, которые вы хотите контролировать индивидуально и, возможно, иметь другое состояние, но вы не хотите платитьстоимость создания и уничтожения, потому что все они инициализируются в одном и том же состоянии.

5 голосов
/ 17 февраля 2012

На ум приходит как минимум два основных различия:

  • Пул объектов - это контейнер для набора объектов домена, в то время как весовая масса обычно - это объект домена.
  • Пул объектов обычно содержит набор похожих объектов, которые могут совместно использоваться совместно, например, соединения с базой данных, в то время как обычно существует набор различных объектов типа flyweight, каждый из которых представляет свое состояние.
1 голос
/ 17 февраля 2012

Этот сайт описывает обе модели с конкретными примерами.Он довольно хорошо проясняет разницу и поддерживает ответ Габриэля выше.http://www.oodesign.com/

...