为什么我们说“面向对象的编程”而不是简单的“对象编程”?为什么在这种情况下我们谈论的是定向,而不是“面向功能的编程”等等?
发布于 2013-11-06 14:57:08
因为艾伦·凯这么说。
更具体地说,Smalltalk之前的语言有对象或类似对象的结构,但是Smalltalk是第一种专为使用对象作为其主要计算方法而设计的语言。
这可能是一个很好的地方来评论我们所认为的OOP风格和在学术界刚刚开始研究的所谓“简捷数据类型”的表面封装之间的区别。我们早期的“LISP对”定义是抽象数据类型的一个例子,因为它保留了作为数据结构特征的“字段访问”和“字段重新绑定”。60年代的大量工作是关于推广这种结构的数字信号处理器*。“官方”计算机科学界开始将Simula视为定义抽象数据类型的可能工具(即使是其发明者之一达尔1970年),它也构成了ADA后来的主要支柱。这导致了数百篇论文中普遍存在的堆栈数据类型示例。平心而论,我们对此相当惊讶,因为对我们来说,西穆拉低声说的不是简单地重新实现一个微弱的临时想法。我从Simula那里得到的是,您现在可以用目标替换绑定和分配。您最不希望任何程序员做的事情就是处理内部状态,即使是象征性的。相反,对象应该显示为更高级别行为的站点,更适合作为动态组件使用。
这篇文章中最能说明问题的部分是“目标”的概念。因此,定向意味着一个目标,即面向对象的编程,而不是对象编程.他还顺便提到了面向问题和面向表达式的编程。我怀疑这不仅仅是OOP得到了时髦的用词,而功能导向却没有。
发布于 2013-11-06 14:58:02
函数式是形容词,我们不叫Function Programming。但是对象没有一个很好的对应词**,所以我们使用面向对象的方法来构成形容词。
另外,面向功能的编程是不正确的,您可能需要面向功能的编程,这是可行的,但是既然我们已经有了“功能”,为什么还要费心这么冗长呢?
**令人反感的和客观的并不真正起作用。
https://softwareengineering.stackexchange.com/questions/216686
复制相似问题