Responsabilidade das Classes - OO

4 respostas
I

Boa tarde !

Uma duvida simples, mas gostaria de ter a opinião de vocês

Tenho em minha aplicação duas classe Candidato e Partido. Um candidato deve pertencer a um partido, um partido pode ter vários candidatos e um candidato pode criar um partido, simples não ?

Minha pergunta é eu posso ter na minha classe Candidato o método criarPartido ? e esse método receber uma instancia de partido ? Isso estaria correto ?

Desde já agradeço a sua atenção.

4 Respostas

jaboot

Pra mim, o CRUD (Create Read Update Delete) do candidato deveria ficar no Candidato, e no Partido o CRUD de partido.

I

Mas quando estou pensando em domio, um candidato pode se incluir ? entendeu ?

jaboot

Acho que entendi o que você quis dizer.

O que costuma-se fazer é criar uma camada de serviço no meio do Controller e do DAO. Não entendeu? Eu explico:

UserController (não faz nada, só chama quem sabe fazer)
public class UserController{

    @Autowired // isso é do Spring, poderia ser qualquer outra implementação de injeção
    private PartidoService partidoService;

    public void  criarPartido(Params params)
         partidoService.create("PGUJ");
    }

}
PartidoService (interface)
public interface PartidoService {
     public void create(String nomePartido)
}
PartidoServiceImpl (implementação)
public class PartidoServiceImpl implements PartidoService {

    @Autowired
    private PartidoDAO partidoDAO;

    public void create(String nomePartido){
        partidoDAO.create(nomePartido); // aqui sim grava, usando o DAO correspondente
    }
}
Agora você tem o seu serviço de criação/deleção/updatação(essa foi demais!)/list separado, e teoricamente qualquer Controller pode chamá-lo.
I

Entendi criaria uma estrutura de serviços e a responsabilidade seria retirado da minha classe Candidato.

Legal, vlw !!

Criado 25 de julho de 2012
Ultima resposta 25 de jul. de 2012
Respostas 4
Participantes 2