1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Problema Arquitetura de Software VRaptor

Bom dia pessoal.

Tenho um projeto que inicialmente possui as 3 camadas mvc.

No então os meus Controllers estão ficando com métodos muito grandes pois tenho que fazer algumas verificações nos objetos. por exemplo

Pessoa possui Endereco possui Cidade possui Estado.

Para salvar pessoa preciso verificar se endereço já existe, se sim busco ele e adiciono a pessoa, caso não exista crio um novo. Para salvar Endereço preciso verificar se a cidade já existe, se sim busco e adiciono ao endereço, caso não exista crio uma nova.

E assim por diante.

Preciso organizar o projeto de forma colocar esse tratamento em uma outra classe e não perder a possibilidade de enviar os erros encontrados para view (por exemplo cidade sem nome).

Pensei no padrão de projeto Facade, mais esbarrei no problema de entregar as mensagens de erro para view.

Estou usando também a lib org.modelmapper para fazer a conversão dos objetos jpa e view.

EDITADO

ex

public class EnderecoFactory{
    public Endereco convetToModel(PessoaDTO pessoaDto){
    ...
    endereco.setPessoa(pessoaDto.convertToModel());
    ...
  }
}


public class PessoaFactory{
    public Pessoa convetToModel(PessoaDTO pessoaDto){
    ...

    for(EnderecoDTO enderecoDto : pessoaDto.getEnderecosDto()){
       pessoa.setEndereco(enderecoFactory.convertToModel(enderecoDto));
    }
    ...
  }
}

Não sei como converter isso.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

3 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags vraptor java ou faça a sua própria pergunta.