10.AOP

1.AOP:允许开发者动态修改静态的OO模型

2.AOP是一种编程思想,是OOP的补充

3.正是因为能够动态的扩展功能,所以在程序设计时就有以下好处:

(1)聚焦核心业务逻辑,权限/异常/日志/缓存/事务 等通用功能通过AOP方式添加,程序设计简单

(2)动态扩展,集中管理,代码复用,规范化

4.实现AOP的方式

(1)静态实现:装饰器/代理模式

(2)动态实现:Remoting/Castle(Emit)

(3)静态织入:PostSharp

(4)依赖注入容器的AOP扩展

Unity容器:

①顺序问题:配置文件的注册顺序是调用顺序,然后才是业务方法,但扩展逻辑可以在业务方法后

②接口方法不需要某个AOP扩展--》a.判断方法 b.使用特性

5.MVC的Filter:特性标记,然后该方法执行前/后就多了逻辑

invoke调用中心--负责反射调用方法--检查特性--有则执行额外逻辑

原文地址:https://www.cnblogs.com/bjhblogs/p/13356270.html