国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 建站經(jīng)驗 > 正文

AOP概念-解析

2019-11-02 14:20:37
字體:
供稿:網(wǎng)友

  為什么要區(qū)分J2EE容器和J2EE應(yīng)用系統(tǒng)?

  我們知道,J2EE應(yīng)用系統(tǒng)只有部署在J2EE容器中才能運行,那么為什么劃分為J2EE容器和J2EE應(yīng)用系統(tǒng)? 通過對J2EE容器運行機制的分析,我們可以發(fā)現(xiàn):實際上J2EE容器分離了一般應(yīng)用系統(tǒng)的一些通用功能,例如事務(wù)機制、安全機制以及對象池或線程池等性能優(yōu)化機制。

  這些功能機制是每個應(yīng)用系統(tǒng)幾乎都需要的,因此可以從具體應(yīng)用系統(tǒng)中分離出來,形成一個通用的框架平臺,而且,這些功能機制的設(shè)計開發(fā)有一定難度,同時運行的穩(wěn)定性和快速性都非常重要,必須經(jīng)過長時間調(diào)試和運行經(jīng)驗積累而成,因此,形成了專門的J2EE容器服務(wù)器產(chǎn)品,如Tomcat JBoss、Websphere、WebLogic等。

  從J2EE系統(tǒng)劃分為J2EE容器和J2EE應(yīng)用系統(tǒng)兩個方面,我們已經(jīng)看到一種分散關(guān)注的思路(separation of concerns)。

  分散關(guān)注

  將通用需求功能從不相關(guān)類之中分離出來;同時,能夠使得很多類共享一個行為,一旦行為發(fā)生變化,不必修改很多類,只要修改這個行為就可以。

  AOP就是這種實現(xiàn)分散關(guān)注的編程方法,它將“關(guān)注”封裝在“方面”中。

  AOP是什么?

  AOP是OOP的延續(xù),是Aspect Oriented Programming的縮寫,意思是面向方面編程。AOP實際是GoF設(shè)計模式的延續(xù),設(shè)計模式孜孜不倦追求的是調(diào)用者和被調(diào)用者之間的解耦,AOP可以說也是這種目標的一種實現(xiàn)。

  舉例:假設(shè)有在一個應(yīng)用系統(tǒng)中,有一個共享的數(shù)據(jù)必須被并發(fā)同時訪問,首先,將這個數(shù)據(jù)封裝在數(shù)據(jù)對象中,稱為Data Class,同時,將有多個訪問類,專門用于在同一時刻訪問這同一個數(shù)據(jù)對象。

  為了完成上述并發(fā)訪問同一資源的功能,需要引入鎖Lock的概念,也就是說,某個時刻,當有一個訪問類訪問這個數(shù)據(jù)對象時,這個數(shù)據(jù)對象必須上鎖Locked,用完后就立即解鎖unLocked,再供其它訪問類訪問。

  使用傳統(tǒng)的編程習(xí)慣,我們會創(chuàng)建一個抽象類,所有的訪問

樂樂影院[www.aikan.tv/special/leleyingyuan/]
類繼承這個抽象父類,如下:

  abstract class Worker{

  abstract void locked();

  abstract void accessDataObject();

  abstract void unlocked();

  }

  缺點:

  accessDataObject()方法需要有“鎖”狀態(tài)之類的相關(guān)代碼。Java只提供了單繼承,因此具體訪問類只能繼承這個父類,如果具體訪問類還要繼承其它父類,比如另外一個如Worker的父類,將無法方便實現(xiàn)。重用被打折扣,具體訪問類因為也包含“鎖”狀態(tài)之類的相關(guān)代碼,只能被重用在相關(guān)有“鎖”的場合,重用范圍很窄。

  仔細研究這個應(yīng)用的“鎖”,它其實有下列特性:

  “鎖”功能不是具體訪問類的首要或主要功能,訪問類主要功能是訪問數(shù)據(jù)對象,例如讀取數(shù)據(jù)或更改動作。

  “鎖”行為其實是和具體訪問類的主要功能可以獨立、區(qū)分開來的。

  “鎖”功能其實是這個系統(tǒng)的一個縱向切面,涉及許多類、許多類的方法。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 五华县| 泸定县| 信宜市| 砀山县| 内黄县| 扎兰屯市| 益阳市| 阳信县| 贵港市| 康马县| 塔城市| 大同县| 泾源县| 临武县| 黔西| 高雄市| 新郑市| 承德市| 六枝特区| 峡江县| 玉屏| 吉安市| 元氏县| 洮南市| 台湾省| 福鼎市| 泰兴市| 巴塘县| 浦江县| 炎陵县| 凯里市| 博客| 渭南市| 汨罗市| 珲春市| 四平市| 东海县| 侯马市| 昌乐县| 娱乐| 霍城县|