作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想这个问题以前有人问过,但我无法立即找到相关的 SO 问题或其他地方的相关文章。
令我震惊的是,AOP 中的某些术语相当奇怪。看来我不是唯一一个-这个article ,例如,指出“不幸的是,AOP 术语不是特别直观”。但是,如果可能的话,我还没有找到解释为什么它们不更“直观”的资源。
更具体地说:我可以稍微理解“方面”和“连接点”——它们似乎具有足够的描述性。但是“切入点”和“建议”似乎有些奇怪。这些术语是如何产生的?
我认为了解这些术语的词源将有助于更好地记住它们,即使不能深入了解 AOP 设计者的想法。至少,我希望这能帮助我避免在 session 中大声说出诸如“切入点”或“建议点”之类的无意义的事情......
最佳答案
完全同意你的沮丧。每个术语都有它的用途,但每次我必须处理 AOP 时,我有时不得不重新内存每个术语的作用。
对我有帮助的是,整个 AOP 是基于方法拦截器的单一概念,可以应用于方法,可以决定是否需要对该方法调用采取行动,并在该方法调用之前和之后应用自定义逻辑。
看看 Springs org.aopalliance.intercept.MethodInterceptor 及其继承层次结构。例如,通知实际上是 MethodInterceptor 的抽象定义,切入点是选择将通知(或 MethodIntercptor)应用到哪些方法的逻辑。
据我所知,甚至切入点也只是另一个委托(delegate)给方法拦截器的方法拦截器。
关于aop - 一些 AOP 术语的由来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43971523/
我是一名优秀的程序员,十分优秀!