当我查看许多网站时。有些人交替使用面向对象编程和命令式编程,而另一些人则说它们是不同的。
我想知道面向对象和命令式之间有什么区别,以及这些范式有何不同。或者如果他们根本没有区别。
当我查看许多网站时。有些人交替使用面向对象编程和命令式编程,而另一些人则说它们是不同的。
我想知道面向对象和命令式之间有什么区别,以及这些范式有何不同。或者如果他们根本没有区别。
这是一个艰难的过程,因为所涉及的术语通常对不同的人意味着不同的东西。
粗略地说(尽管有些人会说“严格来说”)命令式与声明式相反。
严格的 OO 支持者可能会说 OO 是声明性的。请参阅 David West 的同名著作和此博客中的“对象思维”风格:http ://www.yegor256.com/ 。
OO,因为它通常被实践,经常“转移”(同样,其他人会强烈反对)变成一种非常程序化和命令式的风格,你开始告诉计算机要做什么,而不是用你的对象描述和建模现实世界(在某种意义上) .
(这是一个可能有用的视频。它对比了过程编程和 OO,为了我们的目的,这里的“过程”大致是“命令式”的同义词。)
我知道这不是一个很好的答案,但也许它很有用。
从上到下,命令式语言有两种主要的子类型。
过程语言(例如 BASIC、FORTRAN)——代码和数据被视为完全分离,并具有简单的代码操作数据范例。
面向对象 (OO) 语言 - 数据和代码(以方法的形式)被捆绑到对象中。在 OO 语言中,元数据(例如类信息)或多或少地强加了附加结构。