java多个DAO与带有配置文件的一个DAO
我目前正在为应用程序创建数据访问层。该应用程序最初将连接到Oracle数据库,但稍后也将连接到DB2数据库
为了连接到数据库,我将使用JDBC。现在我正在考虑我的选择。在我看来,我有两个(主要)选择
1)创建一个支持多个DAO工厂的设计,每个工厂实例化特定于其数据库的DAO。最初,这种设计将只有一个工厂。之后,它将通过第二个工厂和DAO类进行扩展
2)创建一个DAO工厂,为不同的模型实例化多个DAO。这个DAO工厂基于一个配置文件构建DAO,该文件包含JDBC驱动程序路径和连接url
我很想选择第二个选项,这似乎可以消除DAO中相当多的代码重复。有人能给出这两种方法的优缺点吗
当您在使用JDBC时并不真正需要多个DAO工厂(抽象工厂模式)时,为什么要选择它
# 1 楼答案
考虑到您不能使用Spring(尽管它可以节省大量代码),我想说第二个变体更适合您,因为您将自己实现依赖关系管理,而且1个依赖关系(单DAO工厂)总是比2容易
不过,如果您认为两个数据库同时使用的DAO位置数量不大,那么将它们分为两个工厂将具有更好的结构意义,而且更干净。但是如果您认为,几乎所有使用DAOs的类都需要两个世界(Oracle+DB2),那么请再次使用第二个变体
无论如何,试着再考虑DeNeNeCy注入框架的用法,因为不管怎样,你要用所有的工厂来实现你自己。p># 2 楼答案
我相信Spring或Guice对您来说是最好、最干净的选择,您希望选择合适的DAO实现并将其注入DAO消费者层。Spring还将使您能够使用Spring JDBC,它负责大多数样板代码,使DAO易于管理和编码。您还可以将ORMs与Spring结合使用