Ainda é um exemplo em java e padrão (por Java e Pattern Yan Hong) A seguir, o código é convertido em Delphi, e desta vez adicionei um comentário :)
unidade BuilderPattern;
interface
tipo
Tproduct = classe;
// interface de especificação do construtor abstrato
Tbuilder = classe (objeto)
público
Procedure BuilderPart1 ();
Procedure BuilderPart2 ();
Função de retorno (): TPRODUCT;
fim;
// Crie a classe e os componentes específicos do criador juntos, para que o cliente não precise conhecer os detalhes específicos da construção
TCencreteBuilder = classe (tbuilder)
Privado
Produto: TPRODUCT;
público
Procedure BuilderPart1 ();
Procedure BuilderPart2 ();
function returnProduct (): TPRODUCT;
fim;
//Produtos
Tproduct = classe (objeto)
//
fim;
// A função do diretor é usada diretamente pelo cliente
Tdirector = classe (objeto)
Privado
Construtor: Tbuilder;
público
procedimento inicialize ();
fim;
Implementação
{Tdirector}
procedimento tdirector.initialize;
Começar
Construtor: = tCencreteBuilder.create;
Construtor.BuilderPart1 ();
Construtor.builderPart2 ();
Construtor.returnproduct;
fim;
{TConcreteBuilder}
procedimento TCoCreteBuilder.BuilderPart1;
Começar
// seu código
fim;
procedimento TCoCreteBuilder.BuilderPart2;
Começar
// seu código
fim;
function tconcreteBuilder.returnProduct: tProduct;
Começar
Resultados: = Produto;
fim;
fim.