在做具有MVC结构的B/S程序时,怎样将这三层隔离开是十分关键的,一般用DAO封装Hibernate来获得对数据库的具体操作,在这里我们可以为每一个需要建立O-R MAPPING的对象(通过Hibernate实现OR映射)实现一个DAO,然后通过这个DAO来获得具体的数据库操作,用DAO的好处是我们可以把对一个对象的操作集中在同一个DAO中,便于管理,另外向上层只提供了接口屏蔽了底层对数据库的操作,通过hibernate,我们向上层直接提供建立了O-R MAPPING的OBJECT;同时在领域模型这一层,也就是M这一层,我们将一些业务逻辑(business logic)封装进来,这里所指的M这一层通常也就是我们在Hibernate中所用到的plain objectS,就是用来建立O-R MAPPING所需要用到的与表对应的OBJECTs,一般的领域模型都是由这些plain objectS构成;这样我们在控制层也就是C这一层只需要初始化DAO打开到持久层的通路,然后调用一些简单的方法执行业务逻辑,请注意这时候我们的业务逻辑已经被封装在领域模型这一层中了,这样我们每一层都是相互独立的,控制层C和展现层V都不和持久层所提供的接口有关系