Это все еще пример в Java и Pattern (Java и Pattern Yan Hong) Ниже приведен код, преобразованный в Delphi, и на этот раз я добавил комментарий :)
Unit Builderpattern;
интерфейс
тип
Tproduct = class;
// интерфейс спецификации абстрактного строителя
Tbuilder = class (tobject)
публичный
Процедура BuilderPart1 ();
Процедура BuilderPart2 ();
Функция returnProduct (): tproduct;
конец;
// Создать конкретный класс и компоненты Creator и компоненты, чтобы клиенту не нужно знать конкретные детали конструкции
Tconcretebuilder = class (tbuilder)
Частный
Продукт: Tproduct;
публичный
процедура BuilderPart1 ();
процедура BuilderPart2 ();
функция returnproduct (): tproduct;
конец;
// продукты
Tproduct = class (tobject)
//
конец;
// Роль директора напрямую используется клиентом
Tdirector = class (tobject)
Частный
Строитель: Tbuilder;
публичный
процедура инициализировать ();
конец;
Выполнение
{Tdirector}
Процедура tdirector.initialize;
Начинать
Строитель: = tconcretebuilder.create;
Builder.BuilderPart1 ();
Builder.BuilderPart2 ();
Builder.returnProduct;
конец;
{TConcreteBuilder}
Процедура tconcretebuilder.builderpart1;
Начинать
// ваш код
конец;
Процедура tconcretebuilder.builderpart2;
Начинать
// ваш код
конец;
function tconcretebuilder.returnProduct: tproduct;
Начинать
Результаты: = продукт;
конец;
конец.