最近在修改一个项目,该项目需要将数据库从SQL Server移植到Oracle中。由于该项目没有抽象出数据访问层,而是将数据访问耦合到业务逻辑中,因此在数据库移植过程中比较麻烦,需要在源代码中找到所有的数据库相关操作,然后一一修改。如果该项目在设计初期就将数据访问层抽象出来,那么修改就简单许多。
下面,将给出抽象工厂模式在数据访问层的应用示例。
假设有一个房屋租赁系统,有三张表,如下:
- Customer代表顾客,需要租房的人。
- Hourse代表屋子,待出租的房屋。
- Rent代表一项租赁,说明某人租赁某房的事情。
下面,这对这三个表,设计出三个业务逻辑类,如下: