面向方面编程(AOP)如何影响代码质量?

时间:2011-09-27 17:33:05

标签: language-agnostic aop paradigms uses

Aspect Oriented Programming(AOP)似乎是一个有趣的概念。起初我非常热衷于此,但随着我阅读更多并看到人们描述的用例,我变得很失望。

我看到的很多网站,以及AspectC ++开发人员的演示文稿,都提出了我觉得相当可疑的用例。

他们讨论了如何使用AOP进行错误处理(抛出异常),对参数进行边界检查和返回值,在出现问题时返回安全的空对象,安全性等等。这些只是不好的例子(和不是实际的用例),还是我错过了什么?

你怎么知道调用函数时发生了什么?事实上,任何事情都可能发生,具体取决于您决定应用的方面。难道这不会让事情变得非常糟糕吗? API文档怎么样,我该怎么写呢?

到目前为止,我见过的AOP唯一的好用例是日志记录或分析 - 这些事情不会影响实际的逻辑流程,只能用作调试工具。

AOP对调试机制以外的其他任何东西都有用吗?

1 个答案:

答案 0 :(得分:3)

当您遇到与应用程序主要问题无关的问题(称为正交问题)时,AOP最有用。当你必须为现有代码添加一个问题(比如为内部私人使用而构建的安全性)或者必须添加因任何原因而不适合你的域模型的功能而不会真正模糊你的内容时,它会非常方便商业逻辑。

我不会在任何地方使用它,你不得不想知道在调用函数时发生了什么。这对我来说似乎有味道。