Android中AOP實(shí)踐之一概念篇

預(yù)熱

? ? ? ?在說AOP之前先來(lái)說說java最經(jīng)典的OOP(面向?qū)ο缶幊蹋覀兺ㄟ^面向?qū)ο蟮姆庋b思想把同一類事物的共性歸為一類中碱妆,方便我們統(tǒng)一管理唇牧。比如我們會(huì)把汽車的輪子,發(fā)動(dòng)機(jī)咨跌,車身噴漆都放在汽車這個(gè)類中。這樣的好處是良好的封裝能夠減少耦合硼婿,隱藏信息實(shí)現(xiàn)細(xì)節(jié)锌半。但是試想一下如果每個(gè)類中有沒有重復(fù)調(diào)用的代碼呢?比如日志輸出寇漫、緩存處理刊殉。這里就需要用到AOP思想了。

什么是AOP編程

AOP為Aspect Oriented Programming的縮寫州胳,意為:面向切面編程记焊,通過預(yù)編譯方式和運(yùn)行期動(dòng)態(tài)代理實(shí)現(xiàn)程序功能的統(tǒng)一維護(hù)的一種技術(shù)。

? ? ? ?上面是AOP的定義栓撞,比較抽象遍膜。我們接著上面來(lái)說,如果兩個(gè)類都有做緩存處理瓤湘,那么我們就需要在兩個(gè)類中寫同樣的關(guān)于緩存的代碼瓢颅。既然是相同代碼那肯定可以做封裝嘛,但我們封裝一個(gè)緩存工具類然后去掉用弛说,上面兩個(gè)類又和緩存類耦合了挽懦。那么,有沒有什么辦法木人,能讓我們?cè)谛枰臅r(shí)候信柿,隨意地加入代碼呢?
? ? ? ?這種在運(yùn)行時(shí)醒第,動(dòng)態(tài)地將代碼切入到類的指定方法角塑、指定位置上的編程思想就是面向切面的編程。
? ? ? ?一般而言淘讥,我們管切入到指定類指定方法的代碼片段稱為切面,而切入到哪些類堤如、哪些方法則叫切入點(diǎn)蒲列。有了AOP窒朋,我們就可以把幾個(gè)類共有的代碼,抽取到一個(gè)切片中蝗岖,等到需要時(shí)再切入對(duì)象中去侥猩,從而改變其原有的行為。
? ? ? ?這樣看來(lái)抵赢,AOP其實(shí)只是OOP的補(bǔ)充而已欺劳。OOP從橫向上區(qū)分出一個(gè)個(gè)的類來(lái),而AOP則從縱向上向?qū)ο笾屑尤胩囟ǖ拇a铅鲤。有了AOP划提,OOP變得立體了。如果加上時(shí)間維度邢享,AOP使OOP由原來(lái)的二維變?yōu)槿S了鹏往,由平面變成立體了。
? ? ? ?AOP在編程歷史上可以說是里程碑式的骇塘,對(duì)OOP編程是一種十分有益的補(bǔ)充伊履。
引用知乎上一個(gè)圖作為補(bǔ)充說明

img

面向切面,面向方面款违,也叫刀削面唐瀑,蘸料是切面,刀削面是切入點(diǎn)插爹,把蘸料加入到刀削面中哄辣,就是把切面(要切入的代碼段)切入到切入點(diǎn)中去。即AOP递惋。哈哈柔滔,我覺得很到位。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末萍虽,一起剝皮案震驚了整個(gè)濱河市睛廊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌杉编,老刑警劉巖超全,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異邓馒,居然都是意外死亡嘶朱,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門光酣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)疏遏,“玉大人,你說我怎么就攤上這事〔埔欤” “怎么了倘零?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)戳寸。 經(jīng)常有香客問我呈驶,道長(zhǎng),這世上最難降的妖魔是什么疫鹊? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任袖瞻,我火速辦了婚禮,結(jié)果婚禮上拆吆,老公的妹妹穿的比我還像新娘聋迎。我一直安慰自己,他們只是感情好锈拨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布砌庄。 她就那樣靜靜地躺著,像睡著了一般奕枢。 火紅的嫁衣襯著肌膚如雪娄昆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天缝彬,我揣著相機(jī)與錄音萌焰,去河邊找鬼。 笑死谷浅,一個(gè)胖子當(dāng)著我的面吹牛扒俯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播一疯,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼撼玄,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了墩邀?” 一聲冷哼從身側(cè)響起掌猛,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎眉睹,沒想到半個(gè)月后荔茬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡竹海,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年慕蔚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斋配。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡孔飒,死狀恐怖灌闺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情十偶,我是刑警寧澤菩鲜,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站惦积,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏猛频。R本人自食惡果不足惜狮崩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鹿寻。 院中可真熱鬧睦柴,春花似錦、人聲如沸毡熏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)痢法。三九已至狱窘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間财搁,已是汗流浹背蘸炸。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留尖奔,地道東北人搭儒。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像提茁,于是被迫代替她去往敵國(guó)和親淹禾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,139評(píng)論 25 707
  • 團(tuán)隊(duì)開發(fā)框架實(shí)戰(zhàn)—面向切面的編程 AOP 引言 軟件開發(fā)的目標(biāo)是要對(duì)世界的部分元素或者信息流建立模型茴扁,實(shí)現(xiàn)軟件系統(tǒng)...
    Bobby0322閱讀 4,151評(píng)論 4 49
  • 在上一篇使用自定義注解實(shí)現(xiàn)MVP中Model和View的注入中铃岔,使用了自定義的方式進(jìn)行依賴注入這一篇我們將繼續(xù)對(duì)注...
    奇葩AnJoiner閱讀 879評(píng)論 0 2
  • 隱瞞,逃避坯苹,從前隆檀。今天我所發(fā)現(xiàn)的一切,足以讓我的愛情崩塌,真不知道恐仑,我還能用什么去堅(jiān)持泉坐。許嵩說的對(duì),裝糊涂是極難...
    曙光灬初露閱讀 131評(píng)論 0 1
  • 2017.10.10. 星期二 晴天 我的姐姐個(gè)子不是很高裳仆,留著齊耳短發(fā)腕让,圓圓的蘋果臉,帶著一副紫色邊框的...
    王紫楊閱讀 423評(píng)論 5 7