面向方面的编程(AOP) 似乎是一个有趣的概念。起初我对它非常热情,但当我阅读更多并看到人们描述的用例时,我变得失望了。
我看到的很多网站,以及 AspectC++ 开发人员的演示文稿,都展示了我认为相当可疑的用例。
他们讨论了如何使用 AOP 进行错误处理(抛出异常)、对参数和返回值进行边界检查、在出现问题时返回安全的空对象、安全性等。这些只是不好的例子(而不是实际使用案例),还是我错过了什么?
当你调用一个函数时,你应该如何知道发生了什么?几乎任何事情都可能发生,这取决于您决定应用哪些方面。这不会把事情搞得一团糟吗?API 文档呢,我应该怎么写呢?
到目前为止,我见过的唯一好的 AOP 用例是日志记录或分析之类的东西——它们不会影响实际的逻辑流程并且仅用作调试工具。
除了调试机制之外,AOP 对其他任何东西有用吗?