В чем разница между шаблоном Builder и шаблоном Flyweight?

В чем разница между шаблоном Builder и шаблоном Flyweight с точки зрения использования, поскольку оба они имеют дело с большим количеством объектов?


person user366312    schedule 14.11.2009    source источник


Ответы (3)


Шаблон Builder используется для создания множества объектов, в то время как шаблон Flyweight предназначен для совместного использования такой коллекции объектов. .

Оба этих шаблона имеют дело с «композитами», т. е. объектами, которые могут состоять из нескольких элементов, но их вообще не нужно использовать вместе. Архетипический вариант использования Легковеса — это когда пул из нескольких десятков объектов-символов используется снова и снова в приложении текстового редактора (это пример, приведенный в книга "GoF")

person mjv    schedule 14.11.2009

Прямо из википедии.

Легчайший вес

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

Строитель

Шаблон Builder — это шаблон проектирования программного обеспечения. Цель состоит в том, чтобы абстрагировать шаги построения объектов, чтобы разные реализации этих шагов могли создавать разные представления объектов.

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

person bytebender    schedule 14.11.2009

Шаблон легковеса подходит, когда «необходимо манипулировать многими объектами, и они не могут позволить себе иметь посторонние данные». В Java объекты String управляются как легковес. Java помещает все фиксированные литералы String в пул литералов. Для избыточных литералов Java хранит в пуле только одну копию.

Ключом к тому, чтобы заставить легковес работать, является управление созданием объектов с использованием фабричного метода или шаблона проектирования компоновщика. Задача фабричного метода состоит в том, чтобы просто создавать объекты: при заданных входных критериях возвращать объект соответствующего типа.

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

person Sudhakar Kalmari    schedule 13.04.2010