我认为此问题之前已被提出,但我无法立即找到相关的SO问题或其他地方的文章。
令我感到震惊的是,AOP中的某些术语相当奇怪。似乎我不是唯一的一个 - 例如,article注意到“不幸的是,AOP术语不是特别直观”。但是,我没有找到资源解释为什么它们不是更“直观”,如果可能的话。
更具体地说:我可以在某种程度上理解“方面”和“加入点” - 它们看起来足够具有描述性。但“切入点”和“建议”似乎有点奇怪。这些术语是如何产生的?
我认为了解这些术语的词源将有助于更好地记住它们,如果不能让我们对AOP设计师的想法有所了解。至少,我希望这能帮助我解决会议中“削减点”或“建议点”等无意义的事情......
答案 0 :(得分:1)
更新:实际上,您需要熟悉的技术术语并不多。以下内容来自我的一张AOP幻灯片。我使用它们是为了在开发人员时向开发人员介绍AOP:
如果你需要婴儿床或记忆钩,也许这有帮助(请注意斜体字):
我不知道这是否有用,但我希望如此。
答案 1 :(得分:1)
完全赞同你的挫败感。每个术语都有它的用途,但每次我必须处理AOP时,我有时必须更新每个术语的内容。
帮助我的是整个AOP基于可以应用于方法的方法拦截器的单一概念,可以决定是否需要对该方法调用采取操作并在该方法调用之前和之后应用自定义逻辑。
看看Springs org.aopalliance.intercept.MethodInterceptor及其继承层次结构。例如,建议实际上是MethodInterceptor的抽象定义,而切入点是选择应用该建议(或MethodIntercptor)的方法的逻辑。
据我所知,即使切入点只是另一个委托给方法拦截器的方法拦截器。