В чем разница между шаблоном Builder и шаблоном Flyweight?
-
20-09-2019 - |
Вопрос
В чем разница между шаблоном Builder и шаблоном Flyweight с точки зрения использования, поскольку оба они работают с большим количеством объектов?
Решение
Шаблон Builder используется для создавать множество объектов, при этом шаблон «Милегвес» примерно делиться такая коллекция предметов.
Оба эти шаблона имеют дело с «композитами», т.е.объекты, которые могут иметь несколько элементов, но их вообще не обязательно использовать вместе.Архетипический вариант использования наилегчайшего веса: пул из нескольких десятков персонажей-объектов используются снова и снова в приложении текстового редактора (это пример, приведенный в книга "ГоФ")
Другие советы
Прямо из википедии.
Легкий вес - это шаблон проектирования программного обеспечения.Весплав - это объект, который сводит к минимуму использование памяти, делясь как можно большим количеством данных с другими подобными объектами;Это способ использовать объекты в больших числах, когда простое повторное представление будет использовать недопустимое количество памяти.
Узор застройщика - это шаблон проектирования программного обеспечения.Намерение состоит в том, чтобы абстрагировать этапы построения объектов, чтобы различные реализации этих шагов могли построить различные представления объектов.
Один помогает создавать объекты, а другой помогает с использованием памяти.Потенциально вы можете использовать конструктор для «сборки» различных легковесных объектов.
Образец пролета уместен, когда «многие объекты должны манипулировать, и они не могут позволить себе иметь посторонние данные». В Java объекты строки управляются как вес в полусреднем весе.Java помещает все фиксированные строковые литералы в пул литералов.Для избыточных литералов Java хранит в пуле только одну копию.
Ключом к обеспечению работоспособности легковеса является управление созданием экземпляров объектов с помощью фабричного метода или шаблона проектирования построителя.Задача фабричного метода — просто создавать объекты:учитывая входные критерии, верните объект соответствующего типа.
Абстрактная фабрика похожа на строитель тем, что она также может создавать сложные объекты.Основное отличие состоит в том, что шаблон Builder фокусируется на пошаговом построении сложного объекта.Акцент абстрактного фактора делается на семействах объектов продукта (простых или сложных).