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调用中心--负责反射调用方法--检查特性--有则执行额外逻辑