抽象工厂模式在数据访问层的应用

本文探讨了在数据库移植项目中,抽象工厂模式如何应用于数据访问层以提高系统的可维护性和可扩展性。通过一个房屋租赁系统的例子,展示了如何设计业务逻辑类和 Dao 类图,强调在数据库变更时,抽象工厂模式可以减少源代码修改的工作量。

 

最近在修改一个项目,该项目需要将数据库从SQL Server移植到Oracle中。由于该项目没有抽象出数据访问层,而是将数据访问耦合到业务逻辑中,因此在数据库移植过程中比较麻烦,需要在源代码中找到所有的数据库相关操作,然后一一修改。如果该项目在设计初期就将数据访问层抽象出来,那么修改就简单许多。

下面,将给出抽象工厂模式在数据访问层的应用示例。

假设有一个房屋租赁系统,有三张表,如下:

 

  • Customer代表顾客,需要租房的人。
  • Hourse代表屋子,待出租的房屋。
  • Rent代表一项租赁,说明某人租赁某房的事情。

下面,这对这三个表,设计出三个业务逻辑类,如下:

 

抽象工厂方法的意图在于:

1.  抽象出数据访问层,使得系统可维护性加强;

2.  提高可扩展性,当需要数据移植时,只需要改变少量代码,就可以完成此要求,如将数据库重Oracle移植到MySQL,甚至移植到非关系数据库,如键值数据库Mongo

下图就是数据访问层(Data Access Object,简称Dao)的类图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值