面向方面开发

面向方面编程(AOP)旨在分离横跨多个类的共同关注点,如日志、调试和安全。AOP的关键术语包括接合点、切点、通知和混入。动态语言实现AOP相对简单,静态语言如Java、C#则可通过反射或继承实现。AOP允许在特定方法调用时自动执行交叉切割动作,实现不同方面的组合。
摘要由CSDN通过智能技术生成

       面向方面的目的是分离出横向关联的共通侧面。什么是横向关联?什么是共通侧面?什么是方面?

       面向对象是以对象为单位,横向关联指涉及到多个对象,如果对象中都有共通的逻辑,这就是共通侧面。横跨多个类的共同关注的事就是方面(Aspect)。

       面向方面的编程(AOP)就是针对共同关注的事进行开发。比较典型的场景如日志记录、调试信息、安全认证等。

       为何不用继承实现共通的逻辑?一种情况是不同类型的对象期望有共通的逻辑,但它们不能继承同样的基类,但又不想复制代码破坏DRY(don't repeat yourself)规则。另一种情况是不希望更改(或不能更改)原有类的定义,同时又不能更改接口定义,比如调用第三方web service,这就需要一种动态的方法注入自己的逻辑。

       有四个关键的 AOP 术语:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值