5、面向切面编程(AOP):概念、实现与类比

面向切面编程(AOP):概念、实现与类比

1. AOP 语言剖析

AOP 作为一种方法论,要在现实世界中发挥作用,就必须通过具体的语言、框架及相关工具来实现。和其他编程方法论一样,AOP 实现包含两个部分:
- 语言规范 :描述用于表达核心关注点和横切关注点实现的语言结构和语法。
- 语言实现 :验证代码是否符合语言规范,并将代码转换为可执行形式。

1.1 AOP 语言规范

AOP 的实现需要指定用于实现各个关注点的语言,以及用于实现编织规则的语言。有些 AOP 系统可能会提供一种统一的语言,不区分这两部分,未来的 AOP 语言可能会更倾向于这种方式。下面详细介绍这两部分:

1.1.1 关注点的实现

系统的关注点通常被实现为模块,这些模块包含提供服务所需的数据和行为。例如,实现缓存关注点核心部分的模块需要维护缓存对象集合、管理缓存对象的有效性,并确保有限的内存消耗。通常,我们会使用 C、C++、Java 等标准语言来实现核心和横切关注点。

1.1.2 编织规则规范

编织规则规定了如何将已实现的关注点组合起来形成最终的系统。以缓存关注点为例,在模块中实现缓存核心部分后,需要引入缓存到系统中。编织规则会指定需要缓存的数据、构成缓存存储键的信息等。系统会根据这些规则从指定操作中获取和更新缓存。

AOP 的强大之处在于能够简洁地表达编织规则。例如,要模块化跟踪关注点,可以添加几行代码来指定系统中所有公共操作都应被记录。以下是跟踪方面的编织规范:
- 规则 1:创建一个日志记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值