Exemplo do Padrão de Projetos Builder

0 respostas
F

Caros,
Gostaria de pedir a opinião dos mais experts em patterns sobre o padrão Builder e sua REAL necessidade.
O que acham :?: , faz sentido :?: , está errado :?: Favor se não é pedir muito gostaria de discutir os benefícios dessa abordagem e pq deveríamos usá-lo nesse exemplo que fiz abaixo.
Peguei a ideia do livro Use a Cabeça Padrões de Projeto. De vez em quando o abro para dar uma estudada!
Seguem as classes:

abstract class CriarPacoteFeriasBulder {
	 Ferias ferias = new Ferias();
	public Ferias getPacoteDeFerias() {
		return ferias;
	}
	abstract void comprarPassagens();
	abstract void reservarHotel();
	abstract void prepararPasseio();
}

class FeriasBrasilBuilder extends CriarPacoteFeriasBulder{
	@Override
	void comprarPassagens() {
	 ferias.setVoo(" Voo para o Brasil pela TAM para duas pessoas\n"); 	
	}
	@Override
	void reservarHotel() {
	ferias.setHotel("Seu Hotel é Gran Palace do Rio de Janeiro\n");		
	}
	@Override
	void prepararPasseio() {
	ferias.setPasseios("Existem dois passeios para o Pão de Açucar no final de semana\n");		
	}
}
class Ferias {
	private String voo;
	private String hotel;
	private String passeios;
	public String getVoo() {
		return voo;
	}
	public void setVoo(String voo) {
		this.voo = voo;
	}
	public String getHotel() {
		return hotel;
	}
	public void setHotel(String hotel) {
		this.hotel = hotel;
	}
	public String getPasseios() {
		return passeios;
	}
	public void setPasseios(String passeios) {
		this.passeios = passeios;
	}
	public String toString(){
	 return ""+voo+""+hotel+""+passeios;
	}


	@Override
	void comprarPassagens() {
		ferias.setVoo("O voo pela Italy nunca mais está reservado");		
	}
	@Override
	void reservarHotel() {
		ferias.setHotel("Hotel Pisa de 5 estrelas está reservado");		
	}
	@Override
	void prepararPasseio() {
		ferias.setPasseios("Passeio ao Coliseo está reservado");		
	}
}
public class BuilderExemplo {
	public static void main(String[] args) {
		Client c= new Client();
		//c.setBulder(new  FeriasBrasilBuilder() );
		c.setBulder(new  FeriasItaliaBuilder() );
		c.constructPacoteDeFerias();
		System.out.println( c.getPacoteFerias() );
	}
}
Criado 15 de maio de 2012
Respostas 0
Participantes 1