基于模式的体系结构设计与开发: 第 1 部分:使用设计模式
2010-01-22 00:00:00 来源:WEB开发网核心提示: 在此方案中,业务对象本身负责与基础数据库的通信,基于模式的体系结构设计与开发: 第 1 部分:使用设计模式(9),此方案有一些缺点: 业务逻辑和数据访问逻辑之间存在紧密耦合,如果基础数据库发生变化,只需要编写 DAO 的另一个实现(其中包括与新数据库通信所需的所有代码)即可,清单 5 显示了经过
在此方案中,业务对象本身负责与基础数据库的通信。
此方案有一些缺点:
业务逻辑和数据访问逻辑之间存在紧密耦合。
如果基础数据库发生变化,业务对象将受到影响。
最好将业务逻辑实现从数据访问逻辑实现拆分出来,使业务对象与数据访问逻辑独立。而这正是我们将要使用下一个设计模式完成的工作。
使用设计模式创建解决方案:“数据访问对象”模式
可以使用数据访问对象(Data Access Object,DAO)模式抽象和封装对数据源的所有访问。DAO 将对与数据源的连接进行管理,以获取和存储数据。图 7 显示了设计中使用 DAO 的情况。
图 7. 直接数据库通信
如清单 5 中所示,应用程序类并不需要知道其与之通信的实际数据库,只需要知道 DAO 接口的方法即可。DAO 实现类将包含数据库特定的逻辑。现在,如果希望使用不同的数据库,只需要编写 DAO 的另一个实现(其中包括与新数据库通信所需的所有代码)即可。清单 5 显示了经过简化的代码片段,用于调用为 Itinerary 类编写的 DAO 实现。
清单 5. 使用 DAO 消除数据库通信依赖关系public class Itinerary implements Serializable{
// Attributes containing the details of Itinerary
public void saveItinerary(){
// Leave the underlying detail of database communication to the DAO
ItineraryDAO dao = new ItineraryDAO();
dao.saveItinerary();
}
}
更多精彩
赞助商链接