Boa tarde,
Estou utilizando DAO como pattern de acesso a bases de dados
(usando também hibernate).
Gostaria de saber a opinião de vocês.
Quando eu crio a classe abstrata DAOFactory, eu defino
diversos métodos abstratos especificos para um determinado projeto,
como por exemplo:
public abstract CustomerDAO getCustomerDAO();
Então eu extendo esta classe (Ex.: GenericDAOFactory).
Fazendo desta maneira, eu não deixo muito expecifico esta camada
para um determinado projeto que utilize a classe Customer, por ex???
Pois eu poderia criar diversas classes para acessar a base de dados,
e criar um JAR para estes e utilizar em qualquer projeto.
Usando desta maneira, toda vez que eu tiver que desenvolver um
novo projeto, eu terei que mudar a classe abstrata
DAOFactory e GenericDAOFactory.
É claro que eu ganho muito em relação a poder utilizar diversos
gerenciadores de bancos de dados, mas, provalmente, quando eu
mudar de projetos, que utilizam outras classes, terei que mudar
as classes acima.
Bom, estou começando agora com isso, posso estar enganado
em relação a algumas coisas, então gostaria de saber
as opiniões de vocês sobre este importante assunto.
Obrigado,
Abraços

