像这里和全世界的大多数开发人员一样,我使用面向对象编程(OOP)技术开发软件系统已经有很多年了。因此,当我读到面向方面编程(AOP)解决了许多传统OOP不能完全或直接解决的问题时,我停下来思考,它是真的吗?
我已经阅读了大量的信息,试图了解这种AOP范例的关键,我也是如此,所以,我想更好地了解它在现实世界应用程序开发中的好处。
有人知道答案吗?
发布于 2008-10-24 09:09:24
OOP和AOP并不是互斥的。AOP可以作为OOP的一个很好的补充。AOP在向方法添加日志、性能跟踪等标准代码时特别方便,而不会因为这些标准代码而阻塞方法代码。
发布于 2008-10-24 09:16:58
首先,AOP不会取代OOP。AOP扩展了OOP。OOP的思想和实践仍然是相关的。拥有一个好的对象设计可能会更容易用方面来扩展它。
我认为AOP带来的想法很重要。我们需要找出在程序中实现不同类的横切关注点的方法,而不必改变类本身。但我认为AOP最终只会成为我们使用的其他工具的一部分,而不是一个单独的工具或技术。我们已经看到了这种情况的发生。
像Ruby和Python这样的几种动态语言都有像mixins这样的语言结构来解决同样的问题。这看起来很像AOP,但在语言中集成得更好。
Spring和Castle以及其他几个依赖注入框架可以选择将行为添加到它们注入的类中。这是一种运行时编织的方式,我认为这有很大的潜力。
我不认为你必须学习一个全新的范例来使用AOP。这些想法很有趣,但正在慢慢地被现有的工具和语言所吸收。请随时了解情况,并尝试这些工具。
发布于 2010-10-13 19:30:34
AOP是一种新的处理这个概念的编程范例。方面是实现应用程序的特定非功能部分的软件实体。
我认为这篇文章是一个开始进行面向方面编程的好地方:http://www.jaftalks.com/wp/index.php/introduction-to-aspect-oriented-programming/
https://stackoverflow.com/questions/232884
复制相似问题