AOP 是Aspect Oriented Programming的缩小,面向方面的编程,核心内容是横切关注点。
OO,使用面向对象方法构建软件系统,我们可以利用OO的特性,很好地解决纵向的问题。因为,OO的核心概念,如继承等,都是纵向结构的。
AOP的目标:
在软件系统中,往往有很多模块,或者很多类共享某个行为,或者说,某个行为存在于软件的各个部分中,这个行为可以看做是横向存在于软件之中,他所关注的是软件的各个部分的一些共有的行为,而且,在很多情况下,这种行为不属于业务逻辑的一部分。
例如,操作日志的记录,这种操作并不是业务逻辑调用的必须部分,但是我们却往往不得在代码中显示进行调用,并承担由此带来的后果(例如,当日志记录的接口发生变化时,不得不对调用代码进行修改)
这种问题,使用传统的OO方法是很难解决的,AOP的目标,便是将这些横切关注点与业务逻辑代码相分离,从而得到更好地软件结构以及性能、稳定性方面的好处。
在下列情景中使用AOP技术:
Authentication 权限 Caching 缓存 Context passing 内容传递 Error handling 错误处理 Lazy loading 懒加载 Debugging 调试
Logging ,tracing ,profiling and monitoring(记录跟踪,优化,校准) performance optimization性能优化 persistence 持久性 resource pooling 资源池
Synchronization 同步 transactions事务
www.websharp.org websharp aspect