命令式和面向对象编程有什么区别?

时间:2016-07-22 12:57:37

标签: oop imperative

当我看到众多网站时。有些人可以互换地使用面向对象的编程和命令式编程,而有些人则认为它们是不同的。

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

2 个答案:

答案 0 :(得分:7)

这是一个艰难的问题,因为所涉及的术语通常对不同的人意味着不同的事情。

粗略地说(虽然有人会说"严格来说")命令式与陈述性相反。

严格的OO支持者可能会说OO是声明性的。参见"对象思维"大卫·韦斯特在这个名字和这个博客的书中的OO风格:http://www.yegor256.com/

OO,因为它经常被实践" devolved" (再次,其他人会非常不同意)进入一个非常程序化和命令式的风格,你开始告诉计算机该做什么,而不是用你的对象描述和建模现实世界(在某种意义上)。

Here's一个可能有用的视频。它与程序编程和OO形成对比,对于我们这里的目的而言,程序"大致是"命令式"的同义词。 )

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

答案 1 :(得分:0)

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

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

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