OA系统Dao层抽取方法总结

在做OA系统的过程中,涉及到Dao层的抽取,下边对其作如下总结:

1、  第一步:最初设计为:为每一个实体都设计出一个Dao层的接口,同时有一个实现类实现该接口。结构如下:


    这种设计的问题在于,因为每一个实体类Dao层接口中的方法都有很大一部分是相同的,这就造成了不必要的重复,每增加一个实体类都需要做很大的工作量。

2、  第二步:为了解决实体类Dao层接口中代码重复的问题,向上抽取一个BaseDao接口,让所有的Dao层接口都继承该接口,这样就避免了重复写相同的代码,同时如果每一个Dao层类需要特有的方法都可以在Dao层接口中进行扩展。在这里需要注意的是:因为BaseDao不是为某一个具体的Dao服务的,所以参数的传递就需要使用泛型。结构如下:


    但是这样还是有些问题,因为每一个Dao层接口实现类都实现了接口,所以就都需要实现其中的所有方法,这样一来也会造次实现类中的实现方法的重复,

3、  第三步:为了解决实现类中的代码重复,创建一个类BaseDaoImpl实现BaseDao接口,让其他的一系列接口实现类继承这个类,这样就可以将公共的方法只在BaseDaoImpl中实现一次,同样在这里需要注意的是,由于BaseDaoImpl不是为某一个类服务的,所以需要使用泛型,在实现类继承BaseDaoImpl类时指明泛型对应的类型。结构如下:


    在此过程中收获了公共代码的不断抽取的方法,从中体会到在一个系统中一个好的结构的力量是十分强大的,也体会到了很多面向对象设计思想的优势所在,进一步理解了面向对象的设计思路,以后应当多注重这些!
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值