Qual Pattern utilizar?

Olá pessoal,

Estou com um problema, tenho uma aplicação q tem como tela de entrada tanto uma pagina HTML, quanto uma tela em SWING, tenho minha camada de negocio na qual sempre retorna um VO e tb recebe como parametro um VO, a minha duvida é a seguinte, qual pattern eu utilizaria para montar o VO? pois em algumas telas tanto HTML, quanto no SWING, tenho q manipular mais de uma tabela na mesma pagina, no HTML, na action do struts, eu acabo q tendo q chamar o DAO, para montar o VO, e depois passar para a camada de Serivço, mas com isso eu estou atropelando uma camada.
Dei uma olhada no padrão Helper(J2EE), mas pelo q entendi, ele apenas te ajuda a visualizar os dados na tela, e não como receber.

Ate +,
Valew…!

Olá,

Acho q vc está confundindo os nomes dos Patterns. Vc precisa de um DTO e não de um VO. Tem várias threads neste fórum sobre esse assunto.

O ideal seria que apenas a sua camada de regras de negócios chamasse os DAOs. Para recuperar, sua a camada de negócios monta o DTO e manda para o client (servlet/swing). Para salvar, o client(servlet/swing) monta o DTO e manda para a camada de negócios.

DTO, VO, TO? Não é tudo a mesma coisa?
http://www.guj.com.br/posts/list/31773.java

Para o Fowler não…

http://martinfowler.com/eaaCatalog/dataTransferObject.html
http://martinfowler.com/eaaCatalog/valueObject.html

Pois e eu pensava a mesma coisa. Mas antes de mais nada: avalie a necessidade real deles.

http://www.guj.com.br/posts/list/28889.java

Na verdade, para a SUN é a mesma coisa. Value Object é uma coisa mais antiga que o da SUN.

Value Object é um objeto, normalmente imutavel, cuja a identidade não é definida por id, e sim por seus valores.

Exemplo de VOs: Data, Telefone, Endereco, Periodo (de tempo), Valor monetário (no caso da necessidade de se guardar a moeda)…

O J2EE Pattern Value Object foi renomeado apra Transfer Object na segunda edição do catalogo :wink:

Sempre essa eterna discussão e ninguém respondeu o tiago! :lol: :lol: :lol:

Cara, essa situação é ruim, pois você terá que ter um RemoteFaçade, já que é “distribuído”. Um mesm façade pode resolver a situação montando ou desmontando esse DTO (acho que existe um “pattern” que se chama “Assembler”, bom, independente do nome, a idéia é fazer um DTO virar um Entity ou algo do tipo, certo?).

Não teria problemas se o seu Helper acessar esse façade, mas certifique-se que ele só possui regras de apresentação (só manuseia o DTO e não Entities).

Espero ter ajudado…