表现层(jsp)、持久层(类似dao)、业务层(逻辑层、service层)、模型(javabean)、控制层(action)...
轉(zhuǎn)自:http://www.blogjava.net/jiabao/archive/2007/04/08/109189.html
?
為了實(shí)現(xiàn)web層(struts)和持久層(Hibernate)之間的松散耦合,我們采用業(yè)務(wù)代表(Business Delegate)和DAO(Data Access Object)兩種模式。DAO模式為了減少業(yè)務(wù)邏輯和數(shù)據(jù)訪問邏輯之間的耦合,當(dāng)一個持久曾框架被應(yīng)用時,該模式將會減少業(yè)務(wù)對象和該框架之間的耦合,這樣我們可以不修改業(yè)務(wù)對象而選擇不同的持久層框架的實(shí)現(xiàn)。實(shí)際上在DAO模式中包含兩種結(jié)構(gòu)模式:橋(Bridge)模式和適配器(Adaptor)模式。?
對表現(xiàn)層,我們使用?Struts?;業(yè)務(wù)層使用?Spring?;對于持久層我們使用的是?Hibernate?。你盡可以取代這里的某個框架而使用你喜歡的框架已達(dá)到同樣的效果。下圖顯示了框架被整合起來時,從最高層次看到的視圖。
應(yīng)用層
??? 許多設(shè)計良好的web應(yīng)用,可以被按職責(zé)分為四層。這些層次是表現(xiàn)層、持久層、業(yè)務(wù)層、和領(lǐng)域模型層。每一個層次都有其獨(dú)特的職責(zé),不能把各自的功能與其它層次相混合。每一個應(yīng)用層都應(yīng)該和其它層隔離開來,但允許使用接口在層間進(jìn)行通信。我們開始來看看每個層,并討論一下它們各自都應(yīng)該提供什么和不應(yīng)該提供什么。
表現(xiàn)層
??? 一個典型的web 應(yīng)用的末端是表現(xiàn)層。許多Java 開發(fā)者都知道Struts提供了什么東西。然而,太多時候,耦合代碼比如業(yè)務(wù)邏輯被放進(jìn)org.apache.struts.Action中。所以,我們先總結(jié)一下Struts之類的框架應(yīng)該提供什么。下面就是Struts 的職責(zé)所在:
下面是一些經(jīng)常可以使用Struts進(jìn)行編碼但是不應(yīng)該和表現(xiàn)層關(guān)聯(lián)的事情:
在表現(xiàn)層中引入這些類型的代碼將導(dǎo)致類型耦合和維護(hù)負(fù)擔(dān)。
持久層
??? 一個典型Web應(yīng)用的另一端是持久層。這也是應(yīng)用中最容易很快失控的地方。開發(fā)者通常低估了自己構(gòu)建自己的持久層框架的挑戰(zhàn)。一個定制的,內(nèi)部開發(fā)的持久層不僅需要大量的開發(fā)時間,并且通常缺乏功能和難以管理。目前有許多解決這些問題的開源對象關(guān)系映射 (ORM) 框架。特別地,Hibernate 框架就允許Java中的對象-關(guān)系的持久性和查詢服務(wù)。Hibernate 對已經(jīng)熟悉了SQL 和JDBC API的Java開發(fā)者來或具有中度的學(xué)習(xí)曲線。Hibernate 的持久對象基于POJO和Java群集(collections)。此外,使用Hibernate 不和你的IDE接口。下面列出了你需要在持久性框架中編寫的代碼類型:
下面是應(yīng)該在持久層避免的一些事情:
業(yè)務(wù)層應(yīng)該負(fù)責(zé)下面的問題:
轉(zhuǎn)載于:https://www.cnblogs.com/x_wukong/p/3933576.html
總結(jié)
以上是生活随笔為你收集整理的表现层(jsp)、持久层(类似dao)、业务层(逻辑层、service层)、模型(javabean)、控制层(action)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RHEL 6.5 rpm包安装mplye
- 下一篇: 背包 http://bl