天天看點

一個輕量級AOP的實作(開源)

    為了讓項目的代碼看起來更幹淨,需要一個AOP!

    于是就實作了一個非常簡單的,非常輕量級,有多輕量級呢?

    實作的AOP叫做Earthworm(蚯蚓,為什麼叫這個?因為它小,它會疏通!,項目的本意也是這樣,是以就叫這個!),命名空間Earthworm下有8個代碼檔案,包括4個公開接口,1個公開特性,1個公開的抽象類,2個内部類。是以對外部調用者而言,可見的隻有6個,夠輕量級了吧!

   先看項目的組成!

一個輕量級AOP的實作(開源)

      先從簡單的說吧!

      4個公開接口:

IStopAdvice

一個輕量級AOP的實作(開源)

View Code

IBeforeAdvice

一個輕量級AOP的實作(開源)

IAfterAdvice

一個輕量級AOP的實作(開源)

注釋比較齊全就不說了,這三個接口是提供給“通知對象”的!

還有一個是提供給“通知對象”提供者的!

 IAdviceProvider

一個輕量級AOP的實作(開源)

當然這個AOP的主要部分不是這個!

來看最核心的AspectOrientedProperty和Aspect

AspectOrientedProperty

一個輕量級AOP的實作(開源)

Aspect

一個輕量級AOP的實作(開源)

最後是浮雲般的AspectOrientedObject

還有AspectOrientedAttribute

一個輕量級AOP的實作(開源)

   需探讨,加908165245!