Dao层设计

这是一个常用的 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 操作。

你可能感兴趣的:(DAO)