国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

關(guān)于AOP(面向方面的編程)

Pocher / 3097人閱讀

摘要:與的全稱是面向方面編程,這是于年在提出的一個(gè)術(shù)語。這兒將與面向?qū)ο缶幊滔啾容^。這行代碼的關(guān)注點(diǎn),即方面,就是用戶合法性校驗(yàn)。橫切性問題的目標(biāo)是將橫切行的問題以一種更加通用的方式模塊化,從而提升程序的模塊化程度。

AOP

AOP這一術(shù)語,近些年越發(fā)流行了。在java開發(fā)者社區(qū)里,學(xué)習(xí)使用Spring開發(fā)框架時(shí),必定會(huì)涉及到AOP。不了解AOP不影響學(xué)習(xí)和使用Spring框架,不過在了解AOP之后,對于開發(fā)企業(yè)級應(yīng)用則更加有利。本文視圖以通俗的方式,整理一下AOP知識,以供初次接觸的同行參考。

AOP與OOP

AOP的全稱是 面向方面編程 (Aspect-Oriented Programming),這是Gregor Kiczales于1996年在PARC提出的一個(gè)術(shù)語。AOP是一種與OOP截然不同的看待應(yīng)用程序結(jié)構(gòu)的方式,按照AOP的觀念,系統(tǒng)被分解為方面(aspect)或者關(guān)注點(diǎn)(concern),而不是對象。

這兒將AOP與OOP(面向?qū)ο缶幊?Object-Oriented Programming)相比較。Java開發(fā)者一般都比較熟悉OOP,大家都知道,OOP方式帶來的最大好處就是代碼復(fù)用,通過三大特性:封裝、繼承、多態(tài),來復(fù)用代碼。不過,若與AOP相比較,OOP的代碼復(fù)用成程度,還差了那么一點(diǎn)兒。

代碼復(fù)用

一般情況下,OOP能夠很好地避免代碼重復(fù)。具體繼承可以幫助我們在不同類型之間共享相同的行為,多態(tài)可以讓我們可以用相同的方式處理不同類型的對象,將注意力集中到它們的共同之處。但是,有些時(shí)候,我們無法用OOP避免代碼重復(fù),或者無法用OOP得到一個(gè)優(yōu)雅的解決方案。

舉一個(gè)很簡單的栗子,假設(shè)我們有一個(gè)類,類里有一個(gè)公開方法是用來驗(yàn)證用戶合法性的。那么這個(gè)公開方法,必然會(huì)其它很多類里被調(diào)用,而且調(diào)用方式都一樣,偽代碼如下ConcreteClassInstance.auth(userInstance)。雖然重復(fù)的地方只是這一行,但這種代碼將毫無規(guī)律地散布在整個(gè)對象模型中,造成無法避免代碼的重復(fù)。

這行代碼的關(guān)注點(diǎn),即方面,就是用戶合法性校驗(yàn)。采用AOP的話,我們可以達(dá)到這樣的效果:僅在一個(gè)地方聲明:當(dāng)某某條件發(fā)生時(shí),進(jìn)行用戶合法性校驗(yàn)。權(quán)威一點(diǎn)的解釋就是:我們可以多帶帶編寫用戶和合法性校驗(yàn)的代碼,將其包裝成一個(gè)方面(aspect),然后我們可以告訴AOP實(shí)現(xiàn)產(chǎn)品,如何在將方面織入(weave)到程序流程之中。具體的織入策略也有好幾種,比如:代碼生成和預(yù)編譯,動(dòng)態(tài)字節(jié)碼生成、JavaEE的動(dòng)態(tài)代理。

橫切性問題

AOP的目標(biāo)是將橫切行(crosscutting)的問題以一種更加通用的方式模塊化,從而提升程序的模塊化程度。什么是橫切性問題?即一個(gè)關(guān)注點(diǎn)(比如用戶合法性檢查)的實(shí)現(xiàn)代碼,散落在很多個(gè)類或方法之中。很多企業(yè)級問題都具有橫切性,比如事物管理、安全性、資源相關(guān)操作。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/68039.html

相關(guān)文章

  • 慕課網(wǎng)_《Spring入門篇》學(xué)習(xí)總結(jié)

    摘要:入門篇學(xué)習(xí)總結(jié)時(shí)間年月日星期三說明本文部分內(nèi)容均來自慕課網(wǎng)。主要的功能是日志記錄,性能統(tǒng)計(jì),安全控制,事務(wù)處理,異常處理等等。 《Spring入門篇》學(xué)習(xí)總結(jié) 時(shí)間:2017年1月18日星期三說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個(gè)人學(xué)習(xí)源碼:https://git...

    Ververica 評論0 收藏0
  • Swoft 源碼剖析 - Swoft 中 AOP 實(shí)現(xiàn)原理

    摘要:官方在文檔沒有提供完整的但我們還是可以在單元測試中找得到的用法。解決的問題是分散在引用各處的橫切關(guān)注點(diǎn)。橫切關(guān)注點(diǎn)指的是分布于應(yīng)用中多處的功能,譬如日志,事務(wù)和安全。通過將真正執(zhí)行操作的對象委托給實(shí)現(xiàn)了能提供許多功能。源碼剖析系列目錄 作者:bromine鏈接:https://www.jianshu.com/p/e13...來源:簡書著作權(quán)歸作者所有,本文已獲得作者授權(quán)轉(zhuǎn)載,并對原文進(jìn)...

    chenjiang3 評論0 收藏0
  • Spring AOP就是這么簡單啦

    摘要:是一種特殊的增強(qiáng)切面切面由切點(diǎn)和增強(qiáng)通知組成,它既包括了橫切邏輯的定義也包括了連接點(diǎn)的定義。實(shí)際上,一個(gè)的實(shí)現(xiàn)被拆分到多個(gè)類中在中聲明切面我們知道注解很方便,但是,要想使用注解的方式使用就必須要有源碼因?yàn)槲覀円? 前言 只有光頭才能變強(qiáng) 上一篇已經(jīng)講解了Spring IOC知識點(diǎn)一網(wǎng)打盡!,這篇主要是講解Spring的AOP模塊~ 之前我已經(jīng)寫過一篇關(guān)于AOP的文章了,那篇把比較重要的知...

    Jacendfeng 評論0 收藏0
  • Spring框架學(xué)習(xí)筆記(一):官方文檔介紹,IoC與AOP概念學(xué)習(xí)

    摘要:構(gòu)造函數(shù)注入通過調(diào)用類的構(gòu)造函數(shù),將接口實(shí)現(xiàn)類通過構(gòu)造函數(shù)變量傳入。而在中,其使用橫切技術(shù),將這類代碼從原屬的封裝對象中提取出來,封裝到一個(gè)可重用模塊中,稱為。 最近實(shí)習(xí)用到Spring的開發(fā)框架,但是之前沒有接觸過,因此希望利用網(wǎng)上的資源來學(xué)習(xí)以下。 Spring官方給出了非常全面的介紹,非常適合我這種完全的小白……在這一系列學(xué)習(xí)中,我閱讀的主要資源是5.1.2 Reference ...

    mindwind 評論0 收藏0
  • Spring入門IOC和AOP學(xué)習(xí)筆記

    摘要:入門和學(xué)習(xí)筆記概述框架的核心有兩個(gè)容器作為超級大工廠,負(fù)責(zé)管理創(chuàng)建所有的對象,這些對象被稱為。中的一些術(shù)語切面切面組織多個(gè),放在切面中定義。 Spring入門IOC和AOP學(xué)習(xí)筆記 概述 Spring框架的核心有兩個(gè): Spring容器作為超級大工廠,負(fù)責(zé)管理、創(chuàng)建所有的Java對象,這些Java對象被稱為Bean。 Spring容器管理容器中Bean之間的依賴關(guān)系,使用一種叫做依賴...

    wenyiweb 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<