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 ?
Pra mim, o CRUD (Create Read Update Delete) do candidato deveria ficar no Candidato, e no Partido o CRUD de partido.
I
icefox
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)
publicclassUserController{@Autowired// isso é do Spring, poderia ser qualquer outra implementação de injeçãoprivatePartidoServicepartidoService;publicvoidcriarPartido(Paramsparams)partidoService.create("PGUJ");}}
PartidoService (interface)
public interface PartidoService {
public void create(String nomePartido)
}
PartidoServiceImpl (implementação)
publicclassPartidoServiceImplimplementsPartidoService{@AutowiredprivatePartidoDAOpartidoDAO;publicvoidcreate(StringnomePartido){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
icefox
Entendi criaria uma estrutura de serviços e a responsabilidade seria retirado da minha classe Candidato.