<mark id="5z1b5"><cite id="5z1b5"></cite></mark>

        <video id="5z1b5"></video>
          <noframes id="5z1b5"><ins id="5z1b5"></ins>

            <em id="5z1b5"></em>

            <dl id="5z1b5"><ins id="5z1b5"></ins></dl>

              AOP面向方面編程

                 AOP是OOP的延續,是Aspect Oriented Programming的縮寫,意思是面向方面編程。AOP帶來了新的編程革新。 使得軟件設計更加細化,代碼的編寫順序不再決定其運行順序,誕生動態組件概念,結合IOC DI模式,可以實現軟件編寫和運行的最大靈活性,自誕生以來已經成為Java領域主流模式,典型框架有Spring或AspectJ框架。

                 在面向對象系統中,我們經常需要一些任務活動,如記錄,交易的安全性,緩存等,這些活動是必要的,但不是業務邏輯的一部分,被稱為"橫切關注點"。

              (橫切關注==跨整個系統的常用功能)

                 從業務邏輯中分離橫切關注點,為寫出一個精心設計的解耦系統邁出了一大步。讓我們關注思考如何處理橫切關注點的分離。

                 繼承Inheritance

                 繼承的是那些通用功能,繼承需要我們設計一個基類,如果我們要重用到多個地方可能需要修改這個基類。繼承Inheritance == 難以在后來修改(無彈性代碼)

                 委托Delegation

              委托是一個處理橫切關注的好辦法,委托和組合分享一個通用功能,但是我們需要在很多地方調用這個委托對象,顯得繁瑣。委托 == 繁瑣

                 AOP允許我們以模塊化關注橫向點并形成對象,稱為Aspect,這樣使用Aspect能夠創建一個干凈解耦的代碼。

              AOP相關概念

              1. Concerns關注 – 這是基于功能的模塊部分,有兩種類型關注:. 1. 核心關注 2. 跨切面關注(Aspect). 核心關注是有關業務邏輯,比如生成工資單,讓員工記錄,做銀行轉帳。跨切面關注是配合業務的一些活動任務,如日志 緩存等。
              2. Joinpoint連接點 – Joinpoint是在執行時的切入點,Aspect也就是跨切面關注的一些功能要加入主要業務功能的地方,一個連接點可以是一個被調用的方法。
              3. Advice建議 – 每個Aspect都有一個目標,它的任務是什么,這個任務會被切入到哪個連接點,這些都被稱為Advice. Advice能夠定義Aspect什么時候執行任務,是在核心關注也就是主要業務活動的之前 之后或者前后執行?
              4. Pointcut 切入點– 一個系統有很多連接點,但是并不是所有連接點都需要被選擇切入Aspect的,Aspect從切入點能夠獲得幫助,選擇哪個連接點介入。
              5. Aspect方面 – Advice 和 Pointcut定義了一個方面Aspect.Advice定義了Aspect的任務和什么時候執行它,而切入點Pointcut定義在哪里具體地方切入,也就是說,Aspect定義了它是什么東西 什么時候切入和在哪里切入。
              6. Target目標 – 目標是一個被切入的地方,它一般是核心關注,業務功能。
              7. Proxy代理 – 當一個advice應用到目標對象時,這時一個代理對象將被創建. AOP容器創建和管理代理對象的生命周期。
              8. Weaving織入 – Weaving是一個混合橫向方面到目標業務對象的過程,織入可以是在編譯時間,也可以在運行時間使用classload,Spring AOP缺省是在運行時間。

               

              動態代理與AOP

              Spring的AOP實現

              AOP是什么?

              AOP詳解和AspectJ

              AOP與權限控制實現

              探討Spring框架使用真相?

              Spring專題

              JdonFramework的AOP

              Akka的產品化應用經驗分享

              AOP專題討論

              美女漫画大全