在调用第一个方法时触发对第二个方法的调用

时间:2011-09-13 00:56:19

标签: programming-languages methods language-features

假设您的method1不包含对method2的显式调用。

当调用method1时,是否有任何编程语言支持调用method2的方法,而不对第一种方法进行任何修改?如果是这样,请举一个简短的例子。

2 个答案:

答案 0 :(得分:1)

是的,AspectJ,一个。它看起来像这样:

after(): call(void method1()) {
  method2();
}

也就是说,调用 method1之后的,执行给定的代码(只调用method2。整个事情称为 advice call(void method1())部分称为切入点;切入点是一组连接点 ---程序中可指定的位置,可以修改行为或新行为相关的切入点和建议可以分为方面 ---因此是语言的名称。

还有其他面向方面的语言具有相似的功能。

答案 1 :(得分:1)

在“A Reflective Model for First Class Dependencies”中,作者描述了一种语言,在这种语言中,这种依赖关系可以在元对象的帮助下以“与其他应用程序关注点正交”的方式表达。但那是一个研究原型。对元对象和元对象协议的研究导致了面向方面的编程,这种编程已经进入了工业领域,而且确实可能​​使用的更为现实。