为什么编程对象不被认为是程序性的?

T.T*_*.T. 11 c c++ oop

即使OOP使用对象和数据封装,代码仍然像过程一样写出来.那么是什么让OOP松散了程序标签?是因为它被认为是"高级别"吗?

谢谢.

Jam*_*ran 10

并非面向对象编程是"非程序性的"; 只是我们称之为"程序"的代码不是面向对象的(而不是功能性的,可能不是其他几个)

它不是一个或两个案例,而是缓慢的渐变:

意粉代码 - >结构化代码 - >面向对象代码 - >组件代码.

(更新:从上面的图表中删除了"程序",因为它引用了它的所有正确的3/4)

  • 这里的"图表"看起来像是在某种程度上意味着程序代码不如面向对象的代码.无论如何:你在哪里扔功能代码和通用代码:)? (3认同)
  • 你需要更多的维度来准确地绘制这方面的任何东西(就像可怕的左右政治"频谱").不过,我认为这是相对抽象水平的足够好的草图.我没有亲自将其解释为"更好/更差". (2认同)

Tec*_*ogy 7

理论上,OOP和程序规划是正交概念.他们在实践中交织在一起的事实可能比其他任何事情更巧合.因为它非常熟悉,所以程序语法是最易读的格式.消息传递,功能计算表达式和各种其他格式 - 由于它们不熟悉 - 对于大多数程序员来说并不容易.将此与大多数OOP系统基于过程语言的扩展这一事实相结合,并且在实际上难以将两个范例分开.(作为旁注:这是我喜欢F#的一个方面;作为一种多范式语言,它有助于在概念上将OOP的各个方面,命令式编程,函数式编程分开,同时使所有这些方面都可用.)


Ken*_*Ken 5

我会说面向对象和程序是正交的概念.许多流行的面向对象系统是过程语言的扩展,但不是全部.例如,Dylan读起来就像功能和面向对象编程的混合.