天天看点

一个轻量级AOP的实现(开源)

    为了让项目的代码看起来更干净,需要一个AOP!

    于是就实现了一个非常简单的,非常轻量级,有多轻量级呢?

    实现的AOP叫做Earthworm(蚯蚓,为什么叫这个?因为它小,它会疏通!,项目的本意也是这样,所以就叫这个!),命名空间Earthworm下有8个代码文件,包括4个公开接口,1个公开特性,1个公开的抽象类,2个内部类。所以对外部调用者而言,可见的只有6个,够轻量级了吧!

   先看项目的组成!

      先从简单的说吧!

      4个公开接口:

IStopAdvice

View Code

IBeforeAdvice

IAfterAdvice

注释比较齐全就不说了,这三个接口是提供给“通知对象”的!

还有一个是提供给“通知对象”提供者的!

 IAdviceProvider

当然这个AOP的主要部分不是这个!

来看最核心的AspectOrientedProperty和Aspect

AspectOrientedProperty

Aspect

最后是浮云般的AspectOrientedObject

还有AspectOrientedAttribute

   需探讨,加908165245!