关于dao service层设计的心得

图片太小了 看不清  请看附件

我们先看下面的类图


这是一个常用的dao层设计:

DAO (interface)

UserDAO extends DAO (interface)

BaseDAOHibernate implements DAO

UserDaoHibernate extends BaseDAOHibernate implements UserDao

采用这样的设计是为了提高代码的复用,在本例中就是基本的CRUD方法的复用

我们分析一下代码是怎么样被复用的

我们看一下中间的两个class UserDao BaseDaoHibernate 他们跟DAO接口都有直接的关系 一个是继承 一个是实现,换句话说他们都对DAO进行了扩展,UserDao是横向(接口)的扩展,BaseDAOHiberate是纵向的扩展,横向和纵向都扩展了之后要怎样合二为一呢?这个问题由UserDAOHibernat来解决了

通过看上面的图可以看出UserDAO BaseDAOHibernat是作为一个中间层存在的,最终目的是让UserDAOHibernate拥有DAO接口的CRUD操作。

我们再来看下面这个图,是不是跟上图有着惊人的相似 其实仔细看一下这两个图完全的一样,目的也是复用CRUD操作


那么由此我们可以推出什么呢?这个例子能够得出什么结论呢?

凡是对底层的代码进行扩展都可以通过这种横向和纵向的方式来进行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值