Olá
Suponham que eu tenha em meu modelo as seguintes classes:
[code]package modelo.enquetes;
class Questao {
// Atributos, métodos, etc
Questao(String enunciado) {
this.enunciado = enunciado;
}
}
package modelo.enquetes;
public class Enquete {
private List<Questao> questoes;
// Outros atributos irrelevantes para o exemplo
public Enquete() {
List<Questao> = new ArrayList<Questao>();
}
public void novaQuestao(String enunciado) {
questoes.add(new Questao(enunciado));
}
public void removerQuestao(int index) {
questoes.remove(index);
}
}[/code]
Notem que Enquete e Questao formam um agregado. A manipulação de Questoes se dá apenas pela classe Enquete, e a classe Questao não possui visibilidade fora do módulo ( pacote ).
O problema é que dessa forma fica difícil criar um DAO para a entidade Questao, uma vez que essa classe não é visível para a camada de infra-estrutura ( os DAOs estão no pacote infra.persistencia ), não sendo possível assim instanciá-los e manipulá-los diretamente.
Algum de vocês já passou por isso? Como contornaram esse problema?
Abraços