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

    技术2022-05-19  26

     

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

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

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

     

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

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

     

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

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

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

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

     


    最新回复(0)