Sie sind auf Seite 1von 13

Design Patterns : Builder

Marcio R. Rosemberg
Wesley Tenrio

Definio
Builder um padro de projeto de software que permite a separao
da construo de um objeto complexo da sua representao, de
forma que o mesmo processo de construo possa criar diferentes
representaes.
Fonte: Wikipdia

Principais Conceitos
Um dos padres de Criao.
Processo para construir um objeto Complexo
num tipo Abstract.
Usa o mesmo processo de criao para
representaes diferentes; tipo.

Director controla todos os passos de criao dos


objetos.

Participantes e Colaboradores
Constri um Objeto
do tipo Concrete
(ConcreteBuilder Class)
Parmetro do
tipo Abstract
(Builder Interface)
Controla todo o processo
para construir uma instncia

Director

Produto

Participantes e Colaboradores
Builder
Prov a Interface Abstrata para criao
das Partes de um objeto Produto.
Informaes recebidas pelo Director.
ConcreteBuilder
Prov a Concrete type (class).
O real participante que Constri as Partes do objeto
Produto.
Informaes enviadas pelo Client.

Participantes e Colaboradores
Client
Constri o objeto Produto pelo Construtor Default.
Determina o Concrete Type do Produto.
(Creates desired Builder object; ConcreteBuilder)
No faz NADA com relao aos argumentos.
Constri o objeto Director e o configura com o
Builder Object desejado.
O Director recebe um objeto Produto vazio.
O objeto do tipo Concrete Type,
mas o Director recebe um objeto Abstract Type.
Nada sabe e faz sobre o processo de criao do Produto
Recebe o Produto final (Instncia)
quando o Director termina o trabalho de criao.

Participantes e Colaboradores
Director
Recebe um Produto vazio.
Qualquer que seja o produto enviado pelo Client,
o Director recebe via Abstract Interface.
O Director no tem que se preocupar com o Concrete
type do objeto Produto.
Notifica o Builder quando uma parte do Produto deve ser
montada.
Controla todo o processo de criao do Produto
pedao por pedao.

Estrutura

Por que usar um builder?


Uma maneira comum
de criar uma instncia.
Construtor!
Cada parte
determinada pelos
parmetros do
Construtor.

public class Room {


private int area;
private int windows;
public String purpose;
Room() {
}

Room(int newArea, int newWindows,


String newPurpose){
area = newArea;
windows = newWindows;
purpose = newPurpose;
}
S h duas formas de criar uma
instncia pedao por pedao.

Por que usar um builder?


No exemplo do slide anterior
Ns determinamos TODOS os argumentos
ou apenas construmos sem determinar NENHUM.
No podemos determinar argumentos parcialmente.
No podemos controlar todo o processo de criao
de uma instncia.
Restringe as formas de criar um objeto.
Entretanto, no precisamos saber dos detalhes
para criar um objeto

Exemplo Prtico

Exemplo Prtico

Exemplo Prtico

Das könnte Ihnen auch gefallen