Boa Tarde Pessoal,
Estou começando a desenvolver utilizando o pattern Dao, e encontrei uma situação em que não sei qual a melhor alternativa.
Meu problema é o seguinte:
No modelo de Banco, eu tenho uma tabela Item, que é especializada em outras duas tabelas, itemTexto e itemImagem.
No diagrama de classes eu tenho uma classe Abstrata Item e as classes ItemTexto e ItemImagem são filhas da Classe Item.
Também tenho uma classe Pagina que é composta por diversos itens (sejam eles ItemTexto ou ItemImagem).
Qual seria a melhor alternativa para na classe Pagina criar um método que crie meus objetos Descendentes de Item a partir do Banco?
Inicialmente eu fiz um método “popularItens()” que instanciava um ItemDAO, e o ItemDAO instanciava ItemTextoDAO e ItemImagemDAO, que retornavam seus respectivos objetos criados a partir das tabelas itemImagem e ItemTexto.
Porem percebi que essa não é uma boa alternativa, pois nos Daos das classes descendentes(ItemTextoDAO e ItemImagemDAO) eu tenho que fazer Join com a tabela de Item para buscar os Campos que são da classe Abstrata Item. Isto me gera varios pontos de manutenção para a mesma consulta.
Bom espero ter sido claro o suficiente, pois descrever um problema assim através de texto é bem difícil. Estou anexando parte do diagrama de classes e do banco para ficar mais claro.
Podem me ajudar a pensar em uma alternativa melhor?
Valeu

