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

发布于 2024-12-04 09:19:27 字数 114 浏览 2 评论 0原文

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

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

Say you have method1 that contains no explicit calls to method2.

Do any programming languages support a way to call method2 when method1 is called with no modification whatsoever to the first method? If so please give a short example.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

相思碎 2024-12-11 09:19:27

是的,AspectJ 就是其中之一。它看起来像这样:

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

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

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

Yes, AspectJ, for one. It would look something like this:

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

That is, after method1 is called, execute the given code (which just calls method2. The whole thing is called advice. The call(void method1()) part is called a pointcut; a pointcut is a set of join points---specifiable places in your program where behavior can be modified or new behavior injected. Related pointcuts and advice can be grouped into aspects---thus the name of the language.

There are other aspect-oriented languages with similar capabilities.

岁月静好 2024-12-11 09:19:27

在“第一类依赖关系的反射模型”中,作者描述了一种语言,在该语言中,可以借助元对象以“与其他应用程序关注点正交”的方式表达此类依赖性。但这只是一个研究原型。对元对象和元对象协议的研究导致了面向方面的编程,它进入了工业界,而且确实可能​​是更现实的使用方式。

In "A Reflective Model for First Class Dependencies" the author describes a language where such dependencies can be expressed in a manner "that is orthogonal to other application concerns" with the help of meta-objects. But that was a research prototype. Research on meta-objects and meta-object protocols led to aspect-oriented programming, which made its way to industry, and which is indeed probably what would be the more realistic to use.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文