2016-07-22 75 views
1

当我看到许多网站。一些人可以互换使用面向对象的编程和命令式编程,而另一些人则说他们是不同的。命令式和面向对象编程有什么区别?

我想知道面向对象和命令以及这些范例如何区别的区别。或者如果他们没有任何区别。

+0

这个问题会更适合程序员.stackexchange.com –

+2

@RobK不,它真的不会。关于这个主题和关于术语的神圣战争有几本书。这可能不是论文以外的任何地方。 – enderland

+0

@enderland“减少不适合”呢?但我们同意这肯定不适合这里。 –

回答

5

这是一个棘手的问题,因为涉及的术语对不同的人来说通常意味着不同的事情。

粗略地说(虽然有些人会说“严格地说”)命令与声明相反。

严格的OO支持者可能会说OO是声明式的。在David West的这个名字和这个博客的书中看到OO的“Object Thinking”风格:http://www.yegor256.com/

OO因为它通常实践经常会“散发”(同样,其他人将会非常不赞同)成为一种非常程序化和必要的风格,您开始告诉计算机做什么而不是描述和建模现实世界(从某种意义上说)与你的对象。

Here's可能有用的视频。它对比的过程式编程和面向对象,并为我们的目的“程序”大致为“势在必行”的代名词。)

我知道这是不是一个伟大的答案,但也许它很有用。

+0

OOP几乎是隐喻性的,就像程序性和命令性范式之间的中间人一样? – attachPost

+0

@attachPost,请编辑你的问题,或要求一个新的问题,而不是在评论中开始讨论。 – jaco0646

+1

不完全确定你的意思@attachPost,但我会说OOP可以被认为是命令式或声明式,这取决于你如何定义OOP。为了充分披露,我正在转向认为“良好”OOP(正确理解OOP)的说法是基本上是说明性的。越紧迫或程序化越成为你忽略了这一点。理想情况下,两种方法的混合应该不会太多(如果有的话)。这个观点对很多人来说并不会很好。但你至少应该知道这两个“极端”。 :) –

0

从上到下,有两种命令式语言的主要亚型。

  • 过程语言(例如BASIC,FORTRAN) - ,其中的代码和数据被视为完全独立的,并且具有简单的代码进行操作上数据的范例。

  • 面向对象(OO)语言 - 数据和代码(以方法的形式)被捆绑在一起成为对象。在OO语言中,元数据(例如类信息)或多或少地施加额外的结构。

+0

不要将编程语言与编程范例混淆。大多数现代语言支持多种范例。 – jaco0646

相关问题