当我看到众多网站时。有些人可以互换地使用面向对象的编程和命令式编程,而有些人则认为它们是不同的。
我想知道面向对象和命令式之间的区别以及这些范式的区别。或者,如果他们没有任何区别。
答案 0 :(得分:7)
这是一个艰难的问题,因为所涉及的术语通常对不同的人意味着不同的事情。
粗略地说(虽然有人会说"严格来说")命令式与陈述性相反。
严格的OO支持者可能会说OO是声明性的。参见"对象思维"大卫·韦斯特在这个名字和这个博客的书中的OO风格:http://www.yegor256.com/。
OO,因为它经常被实践" devolved" (再次,其他人会非常不同意)进入一个非常程序化和命令式的风格,你开始告诉计算机该做什么,而不是用你的对象描述和建模现实世界(在某种意义上)。
(Here's一个可能有用的视频。它与程序编程和OO形成对比,对于我们这里的目的而言,程序"大致是"命令式"的同义词。 )
我知道这不是一个好的答案,但也许它很有用。
答案 1 :(得分:0)
从上到下,命令式语言有两种主要的子类型。
程序语言(例如BASIC,FORTRAN) - 其中代码和数据被视为完全独立,并且具有简单的代码操作数据范例。
面向对象(OO)语言 - 数据和代码(以方法的形式)捆绑在一起成为对象。在OO语言中,元数据(例如类信息)或多或少地强加了额外的结构。