走进面向切面编程
编程范式概览
面向过程编程 面向对象编程 函数式编程
事件驱动编程 面向切面编程
AOP是什么
1、是一种编程范式,不是编程语言。
2、解决特定问题,不能解决所有问题。
3、是OOP的补充,不是替代。
AOP的初衷
DRY:Don't Repeat Yourself
Soc:Separation of Concerns
-水平分离:展示层->服务层-->持久层
-垂直分离:模块划分(订单、库存等)
-切面分离:分离功能性需求与非功能性需求
使用AOP的好处
集中处理某一关注点/横切逻辑
可以很方便地添加/删除关注点
侵入性少,增强代码可读性及可维护性
AOP的应用场景
权限控制 缓存控制 事务控制
审计日志 性能监控
分布式追踪 异常处理
支持AOP的变成语言
Java .NET C/C++
Ruby Python PHP 等等