首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >面向方面编程与面向对象编程

面向方面编程与面向对象编程
EN

Stack Overflow用户
提问于 2008-10-24 09:00:46
回答 3查看 57.8K关注 0票数 218

像这里和全世界的大多数开发人员一样,我使用面向对象编程(OOP)技术开发软件系统已经有很多年了。因此,当我读到面向方面编程(AOP)解决了许多传统OOP不能完全或直接解决的问题时,我停下来思考,它是真的吗?

我已经阅读了大量的信息,试图了解这种AOP范例的关键,我也是如此,所以,我想更好地了解它在现实世界应用程序开发中的好处。

有人知道答案吗?

EN

回答 3

Stack Overflow用户

发布于 2008-10-24 09:09:24

OOP和AOP并不是互斥的。AOP可以作为OOP的一个很好的补充。AOP在向方法添加日志、性能跟踪等标准代码时特别方便,而不会因为这些标准代码而阻塞方法代码。

票数 29
EN

Stack Overflow用户

发布于 2008-10-24 09:16:58

首先,AOP不会取代OOP。AOP扩展了OOP。OOP的思想和实践仍然是相关的。拥有一个好的对象设计可能会更容易用方面来扩展它。

我认为AOP带来的想法很重要。我们需要找出在程序中实现不同类的横切关注点的方法,而不必改变类本身。但我认为AOP最终只会成为我们使用的其他工具的一部分,而不是一个单独的工具或技术。我们已经看到了这种情况的发生。

像Ruby和Python这样的几种动态语言都有像mixins这样的语言结构来解决同样的问题。这看起来很像AOP,但在语言中集成得更好。

Spring和Castle以及其他几个依赖注入框架可以选择将行为添加到它们注入的类中。这是一种运行时编织的方式,我认为这有很大的潜力。

我不认为你必须学习一个全新的范例来使用AOP。这些想法很有趣,但正在慢慢地被现有的工具和语言所吸收。请随时了解情况,并尝试这些工具。

票数 8
EN

Stack Overflow用户

发布于 2010-10-13 19:30:34

AOP是一种新的处理这个概念的编程范例。方面是实现应用程序的特定非功能部分的软件实体。

我认为这篇文章是一个开始进行面向方面编程的好地方:http://www.jaftalks.com/wp/index.php/introduction-to-aspect-oriented-programming/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/232884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档