C#_AOP 面向切面编程
参考视频: .NET/C# AOP面向切面编程之设计进阶 - YouTube
介绍:面向切面编程 是对 OOP 的补充 解决类的内部变化问题
让开发者动态修改静态的面向对象模型
在不破坏封装的情况下 ,增加各种功能:公共逻辑 - 非业务逻辑
静态 AOP
1-装饰器模式实现 AOP (组合加继承)
A 方法 Reg
B : A 方法 Reg => Before(); Reg(); After();
2-代理模式实现 AOP (组合优于继承)
可以单纯组合不继承
动态 AOP
1、.Net remoting/realProxy (实现有固定写法)
注:必须继承 MarshalByRefObject 类,局限性就是继承其他类就不行了。

2、CastleProxyAOP (也是封装好的固定写法)
注:局限性要求业务方法必须 Virtual

3、Unity 的 AOP 实现 依赖注入容器
注:核心思想是实现接口,接口和注入的配置项匹配,然后实现方法前方法后的拦截实现。可以监控性能,可以接入日志

引用两个库
Unity.Config 依赖注入的配置 - 自己配置
方法执行前 就是正常配置
方法执行后 就是先运行 next 后 return
LogBefore 方法前日志
LogAfter 方法后日志
ParameterCheck 参数检查
ExceptionThrow 异常抛出
Caching 缓存

浙公网安备 33010602011771号