当我用C/C++编写代码时,我发现自己总是试图将所有东西都融入到OOP方法中。但我意识到,我并不总是要把所有的东西都强加给这个模子。使用OOP方法论与不使用OOP方法论有什么优缺点?我更感兴趣的是不使用OOP的优缺点(例如,不使用OOP有没有优化的好处?)。谢谢,让我知道。
发布于 2009-11-10 13:12:14
当然,解释OOP是一件好事的理由是非常容易的。这些包括:设计模式、抽象、封装、模块化、多态性和继承。
不使用OOP时的:
,面向对象语言的问题是,它们有所有的隐含环境,它们随身携带。你想要一个香蕉,但你得到的是一只大猩猩拿着香蕉和整个丛林。
引用了Richard Stallman的一句话
将OOP添加到Emacs并不是一个明显的改进;我在Lisp Machine窗口系统上工作时使用了OOP,我不同意通常的观点,即OOP是一种更好的编程方式。
你可以在这篇题为Bad Engineering Properties of Object-Oriented Languages的文章中找到更多原因。
Wikipedia's Object Oriented Programming page还讨论了一些利弊。
发布于 2009-11-10 13:11:38
非oop功能的一个好处是,它通常可以更容易地将您的功能导出到不同的语言。例如,在C#中使用只包含函数的简单DLL要容易得多,您可以使用P/Invoke来简单地调用C++函数。因此,从这个意义上讲,它对于编写非常耗时的算法非常有用,这些算法可以很好地适合单个/少数函数调用。
发布于 2009-11-10 17:43:02
OOP在GUI代码、计算机游戏和模拟中被大量使用。窗口应该是多态的--你可以点击它们,调整它们的大小,等等。电脑游戏对象应该是多态的-它们可能有一个位置,一条可遵循的路径,它们可能是健康的,它们可能有一些人工智能行为。模拟对象也具有类似的行为,但会分解为多个类。
然而,对于大多数事情来说,OOP有点浪费时间。状态通常只会带来麻烦,除非您已将其安全地放入其所属的数据库中。
https://stackoverflow.com/questions/1705724
复制相似问题