14.1 。方面与转型
动力面向方面编程是,在其他编码范式,守则可实现的一些功能可以分布在全国各地机构的安排计划,不纠缠在与代码实现了其他一些功能。这发生在功能,如伐木,缓存和安全性,而往往典一个类似的形式,是引用了很多次整个计划。此代码已经有很多缺点:它是繁琐的书写,这是容易出错的,它复杂化计划,并呼吁可以补充开销,可不用为许多用户。
插入这些电话自动变换升降机负担从程序员,并减少一些潜在的错误。这一技术成果,更重的时候,插入码,是一个较为复杂的连串行动,这可能会改变一些后来点;集中点的节目,让快的发展,并实现更高程度的重用。不过,这项任务的插入代码可以反过来变成乏味和易出错。举例来说,你怎么指明所有插入要发生吗?如果插入必须有点个性,为每一个插入点?提供一个较高层次的概念上的接口来形容这种变化是一种很有前途的技术[ 2 ] 。
整合新的功能,处理代码到目标应用有三个组成部分:遍历,选拔和发电。 1遍历定义了一个秩序,在这种秩序变压器将访问代码。 (一般而言,我们认为遍历代码声明一个方法,但原则上是类似的订购访问的方法或班级)一个过滤操作对输出一个遍历,选择单独加入点是必要或不为某一特定转型。最后,一台发电机,开辟了新的码序列插入在选定点(技术上来说,它也可以编辑或删除代码) ,它可以改变其行为的基础上,通过语境所赋予它的遍历或过滤。最简单和最常见的发电机采用了超静定定义序列,不过,我们的构思是,可普及到动态创建的自定义代码。上述每个部件均可单独指定,并可以取代候补执行,以达到不同的目标。
比如,考虑转型,以增加瞄头的设计模式,以一个目标。其目的就是为了插入代码标志着对象作为肮脏而改变的状态出现。其中一个可行的实施使用一个穿越重申通过代码基本块。该过滤器将确定指示修改国家的反对,以及发电机,将插入代码标识对象,因为很脏。一旦过滤器已确定一个有效的目标,遍历便可以跳过其余部分基本块,捆绑通知观察员到年底的方法。