跳至主要內容
SunnyFan 知识库
搜索
Ctrl
K
AOP面向切面编程
SunnyFan
大约 1 分钟
约 330 字
#
AOP面向切面编程
#
简介
Aspect Oriented Programming
AOP面向切面编程:解决面向对象语言的静态问题,能突破类的限制,去动态扩展类的功能
#
特点
1.既不破坏封装,又能额外增加功能(有实例)
2.AOP不是取代OOP,只是对OOP的一种补充
3.任意扩展功能,聚焦业务逻辑
4.代码复用,集中管理,方便团队管理
#
AOP的多种实现
1 静态代理,已完成,代理模式-装饰器模式
2 动态代理,已完成,靠反射代理,以前RealProxy-还有Castle(靠emit)
3 静态织入,代表PostSharp (收费);Aspect
4 委托嵌套,
ASP.NET
open in new window
Core管道中间件
5 特性+反射,
ASP.NET
open in new window
Core的Filter
6 IOC容器,autofac-Unity等,其实是基于动态代理或者emit完成
#
优点
1.简单,易用
2.降低模块的耦合度
3.使系统容易扩展
4.设计决定的迟绑定:设计师可以推迟为将来的需求作决定
5.更好的代码复用性
#
缺点
1.增加额外重复代码,且紧耦合
2.每个业务逻辑需要一个装饰器实现或代理
3.使用麻烦,须增加容器
上一页
OOP面向对象编程
下一页
DDD领域驱动设计