在做具有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都不和持久層所提供的接口有關系