Todavía es un ejemplo en Java y Patrón, (por Java y Pattern Yan Hong) El siguiente es el código convertido a Delphi, y esta vez agregué un comentario :)
Builder Pattern;
interfaz
tipo
Tproduct = class;
// interfaz de especificación de constructor abstracto
Tbuilder = class (tobject)
público
Procedimiento BuilderPart1 ();
Procedimiento BuilderPart2 ();
function returnProduct (): tproduct;
fin;
// Cree la clase y los componentes del creador específico, para que el cliente no necesite conocer los detalles de construcción específicos
TConcreteBuilder = class (TBuilder)
Privado
Producto: TProduct;
público
procedimiento BuilderPart1 ();
procedimiento BuilderPart2 ();
función returnProduct (): tproduct;
fin;
// Productos
Tproduct = class (tobject)
//
fin;
// El rol de director es utilizado directamente por el cliente
TDirector = class (tobject)
Privado
Builder: tbuilder;
público
procedimiento inicialize ();
fin;
Implementación
{Tdirector}
procedimiento tdirector.initialize;
Comenzar
Builder: = tConcreteBuilder.create;
Builder.BuilderPart1 ();
Builder.BuilderPart2 ();
Constructor.returnproduct;
fin;
{TConcreteBuilder}
procedimiento tConcreteBuilder.BuilderPart1;
Comenzar
// Tu código
fin;
procedimiento TConcreteBuilder.BuilderPart2;
Comenzar
// Tu código
fin;
función tConcreteBuilder.returnProduct: tProduct;
Comenzar
Resultados: = producto;
fin;
fin.