假设您的method1不包含对method2的显式调用。
当调用method1时,是否有任何编程语言支持调用method2的方法,而不对第一种方法进行任何修改?如果是这样,请举一个简短的例子。
答案 0 :(得分:1)
是的,AspectJ,一个。它看起来像这样:
after(): call(void method1()) {
method2();
}
也就是说,调用 method1
之后的,执行给定的代码(只调用method2
。整个事情称为 advice 。 call(void method1())
部分称为切入点;切入点是一组连接点 ---程序中可指定的位置,可以修改行为或新行为相关的切入点和建议可以分为方面 ---因此是语言的名称。
还有其他面向方面的语言具有相似的功能。
答案 1 :(得分:1)
在“A Reflective Model for First Class Dependencies”中,作者描述了一种语言,在这种语言中,这种依赖关系可以在元对象的帮助下以“与其他应用程序关注点正交”的方式表达。但那是一个研究原型。对元对象和元对象协议的研究导致了面向方面的编程,这种编程已经进入了工业领域,而且确实可能使用的更为现实。