1 Builder Padrões de projeto Projeto de Sistemas de Software Aleksander Bruno Gadelha Setembro, 2008
2 Builder Propósito Motivação Aplicabilidade Estrutura Participantes Colaborações Consequências Exemplo
3 Builder Propósito Permitir a separação da construção de um objeto complexo da sua representação, de forma que o mesmo processo de construção possa criar diferentes representações
4 Builder Motivação Conversão de formatos de texto Leitor RTF deveria ser capaz de converter arquivos RTF em outros formatos como: ASCII, HTML, TEX, etc. Deve ser fácil adicionar novas conversões
5 Builder Motivação
6 Builder Aplicabilidade O algoritmo para criação de um objeto complexo deve ser independente das partes que compõem o objeto e de como elas são montadas O objeto de construção deve permitir diferentes representações para o objeto que é construído
7 Builder Estrutura
8 Builder Participantes Builder Especifica uma interface abstrata para criação de partes de um objeto-produto ou criação de diferentes representações ConcreteBuilder Constrói partes do produto pela implementação da interface do Builder Define e mantém a representação que cria Fornece uma interface para recuperação do produto (GetASCIIText)
9 Builder Participantes Director Constrói um objeto usando a interface do Builder Product Representa o objeto complexo em construção. ConcreteBuilder constrói a representação interna do produto e define o processo pelo qual ele é montado Inclui classes que definem as partes constituintes, inclusive as interfaces para a montagem das partes no resultado final
10 Builder Colaborações O cliente cria o objeto Director e o configura com o objeto Builder desejado Director notifica o construtor sempre que uma parte do produto deve ser construída/convertida Builder trata solicitações do diretor e acrescenta partes ao produto O cliente recupera o produto do construtor
11 Builder Colaborações
12 Builder Consequências Permite variar a representação interna de um produto Isola o código para construção e representação Oferece um controle mais fino sobre o processo de construção
13 Builder Exemplo Um sistema radar em que a montagem dos alvos detectados utiliza complexos processamentos de sinais.
14