面向切面编程

面向切面编程

  1. 定义
    AOP(aspect-oriented-programming)是将遍布在应用各处的功能分离 形成可重用的组件,使得软件系统实现关注点(诸如日志,事务管理,安全)分离的一项技术
    不用AOP的系统架构就像是如下

    其中日志模板,安全模块,事务模块都杂合到业务模块中,导致系统繁杂,后期不好维护,不好扩展
    AOP净化了业务模块,并以声明的方式将其运用到需要它的模块上,使得处理业务的各个模块只关注各种的业务,将业务与日志或事务管理之类的处理分类开来

  2. 例子
    下面我就以日志管理为例来说明一下AOP

  private Person person;
  private Logger log;
  public  void execute(){
      log.before();  //任务执行动作之前记录日志
      person.action();   //业务操作
      log.after();   //任务执行动作之后记录日志
  }

上面是一个 伪代码 将日志记录于业务之中,如果我系统中还有其他的模块任务,同样也要记录日志,我还是得这样写,1.代码重复,2.系统后期扩展不好,如果此时我将代码中改成下面的样子

  private Person person;
  private Logger log;
  //在这里申明一个日志或者配置文件中配置日志或者写一个类似于代理类
  public  void execute(){
   //   log.before();  //任务执行动作之前记录日志
      person.action();   //业务操作
   //   log.after();   //任务执行动作之后记录日志
  }

这样将日志与业务分离开来,这就是AOP的思想

3.AOP中的术语
a.连接点(Joinpoint)
b.切点(Pointcut)
c.通知(Advice)
d.切面(Aspect)
e.织入(Weaving)
下次再细说AOP中的术语的意思,及aop如何实战到java系统的程序中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值