Algum exemplo aplicando VO/TO,FAÇADE,DAO?

Olá amigos, estou envolvido num projeto onde necessita o conhecimento desses patterns acima.

Peço aos amigos um exemplo de implementação desses patterns… estudei bastante no forum/google onde tem muita informação boa.

mais não consegui elaborar um “caso de estudo” para aplicar-los.

Se os amigos tiverem alguns fontes do qual aplicam esses patterns e queira compartilhar… ficaria bastante grato!.

Alguêm se abilitaria? :smiley: :roll:

Cara VO é o mais simples. La vai um exemplo:

 public class Pessoa{
   string nome;
   string cpf;
 
   getters e setters
 }

DAO é a classe onde vc encapsula suas chamadas ao meio de persistencia, seja BD,XML ou outro tipo.

Exemplo:

 public class PessoaDAO {
   public void inserePessoa(Pessoa pessoa);

   public Pessoa obterPessoaPorId(long id){     
   }

   ....
 }

O Facade é quando vc quer esconder uma logica mais complexa de alguma camada do seu sistema encapsulando-a numa classe qualquer. Por exemplo um controle remoto, para vc ligar a tv precisaria de varias coisas e ele lhe fornece apenas um botao ligar transformando-o em fachada para o sistema. Espero ter ajudado

Alberto

fala cara muito obrigado pelo help…

  1. mais então quer dizer que o VO/TO seria um JavaBean simples?, quase um POJO ?.

  2. O conceito de DAO peguei legal por ja ter trampado com ele… que é o tal de encapsular as regras de negócio do banco

  3. Só folta o façade!!! que não entendi!!..

vc poderia implementar um exemplo de controle remoto ?.

exemplo vou montar meu VO/TO:

ControleRemotoVO

package bean;

public class ControleRemotoVO {
	int largura;
	int altura;
	int distânciaQuePega;
	boolean luminoso;
	
	public int getAltura() {
		return altura;
	}
	public void setAltura(int altura) {
		this.altura = altura;
	}
	public int getDistânciaQuePega() {
		return distânciaQuePega;
	}
	public void setDistânciaQuePega(int distânciaQuePega) {
		this.distânciaQuePega = distânciaQuePega;
	}
	public int getLargura() {
		return largura;
	}
	public void setLargura(int largura) {
		this.largura = largura;
	}
	public boolean isLuminoso() {
		return luminoso;
	}
	public void setLuminoso(boolean luminoso) {
		this.luminoso = luminoso;
	}
		
}

ControleRemotoDAO

package dao;

public class ControleRemotoDAO {
	public boolean ligaTv(){
		return true;
	}
	
	public boolean desligaTv(){
		return true;
	}
	
	[b]public boolean mudaCanal(){[/b]
		return true;
	}
}

O metodo muda canal poderiamos trabalhar com CONSTANTES ou passar um objeto( Canal ) que cuida dos canais propriamente dito… tipo : “1,2,3,4,5,6…” e que poderia trabalhar com senha pra liberação do canal e etc…

Onde entraria o façade agora?

up

https://www.dev.java.net/files/documents/353/29441/propmvcdestopapp1.0.pdf

O seu controle remotoDAO é o facade. Ó que bom, vc fez so nao sabia que nome dar. Desligar a TV possui uma logica mais complexa mas vc colocou para a camada superior so uma simples chamada desligar. Isso é o facade, esconder uma logica mais doida expondo so um metodo de granularidade grossa.

Alberto

[quote=alots_ssa]Cara VO é o mais simples. La vai um exemplo:

 public class Pessoa{
   string nome;
   string cpf;
 
   getters e setters
 }

[/quote]

Cara Value Object não é bem assim não da uma olhada. Se vc quiser uma referencia melhor procura Moeda que é um tipo de value object.

http://www.martinfowler.com/eaaCatalog/index.html

Java Man da uma olhada no link tambem

http://fragmental.com.br/wiki/index.php?title=Evitando_VOs_e_BOs