Строитель
Builder
Тип Порождающий
Плюсы

Позволяет изменять внутреннее представление продукта. Изолирует код, реализующий конструирование и представление.

Дает более тонкий контроль над процессом конструирования, чем другие порождающие паттерны
Родственные шаблоны Абстрактная фабрика, Компоновщик
Описан в Design Patterns Да

Строитель (англ. Builder) — порождающий шаблон проектирования предоставляет способ создания составного объекта.

Цель

править

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

Плюсы

править
  • позволяет изменять внутреннее представление продукта;
  • изолирует код, реализующий конструирование и представление;
  • дает более тонкий контроль над процессом конструирования.

Минусы

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

Применение

править

Объекты «моникер» в COM есть Строители, инициализируемые строкой. Более того, для их создания используется другой Строитель — MkParseDisplayNameEx, который определяет по строке класс моникера, создает моникер и инициализирует его этой же строкой.

Один из этих объектов, URL Moniker, используется для всей загрузки страниц, вложений и документов в Microsoft Internet Explorer.

Примеры

править

Java

править



Scala

править

С#

править

C++

править

JavaScript

править

Python

править

PHP5

править

Ruby

править

Delphi

править

VB.NET

править

Примечания

править

Ссылки

править

📚 Artikel Terkait di Wikipedia

Фабричный метод (шаблон проектирования)

PHP <?php interface Product{ public function GetName(); } class ConcreteProductA implements Product{ public function GetName() { return "ProductA"; } }

Компоновщик (шаблон проектирования)

unit: Unit) -> None: """ Добавление нового отряда :param unit: отряд (может быть как базовым, так и компоновщиком) """ self._units.append(unit) unit.print()

Адаптер (шаблон проектирования)

JavaScript function Circle (radius) { this.getRadius = function () { return radius; }; }; function SquareCircleAdapter (adaptee) { this.getSide = function ()

Электронный блок управления

Control Module) — модуль управления двигателем. ECU (Electronic Control Unit) — электронный блок управления, является общим термином для любого электронного

Абстрактная фабрика (шаблон проектирования)

unit := factory.MakeUnit() unit_action := factory.MakeAction() place := factory.MakePlace() fmt.Printf("The %s %ss over the %s.\n", unit.What(), unit_action

Функция активации

978-0-13-273350-2. Cybenko G.V. Approximation by Superpositions of a Sigmoidal function // Mathematics of Control, Signals, and Systems / Jan H. van Schuppen. —

Фасад (шаблон проектирования)

*/ function SubSystem1() { this.method1 = function() { console.log("вызван SubSystem1.method1"); }; } function SubSystem2() { this.method2 = function()

Паскаль (язык программирования)

подпрограмм для Pascal type myfunc=function:string; function func1:string; begin func1:='func № 1' end; function func2:string; begin func2:='func № 2'