什么是 DCI 上下文中的“纯面向对象语言”?

Posted

技术标签:

【中文标题】什么是 DCI 上下文中的“纯面向对象语言”?【英文标题】:What is a "pure object oriented language" in the context of DCI? 【发布时间】:2014-01-04 20:25:31 【问题描述】:

在 DCI 讨论中,通常会提到纯面向对象的语言:

面向对象的编程语言——尤其是“纯粹的” one——用对象或对象上的方法来表达一切。 (当然,大多数编程语言都使用类来做到这一点。 关键是在对象框架之外不应该存在任何东西。)

来源: http://www.artima.com/articles/dci_vision.html

我试图了解纯 OO 语言和非纯 OO 语言在 DCI 方面的区别。为了帮助将差异置于上下文中,最好有一个纯 OO 语言的示例,以便我可以将其与我使用基于类的语言(如 java)的经验进行对比。

问题:哪些语言是纯 OO 语言(从 DCI 的角度来看)?

【问题讨论】:

潜在的“关闭者”:如果您认为这篇文章对堆栈溢出无效,请您帮助我了解如何修复它而不是仅仅将其标记为关闭? 您可以通过删除它来修复它。对于Stack Overflow,这不是一个好问题。见How to Ask。 这接近于边界或基于意见或开放式的讨论。但是,我认为它实际上并没有跨越它,我认为它是主题。 @LennartRegebro 感谢您提供的信息。这种类型的反馈对于海报是无价的。如果没有这种类型的反馈,有时很难知道为什么您的问题被认为不合适。 【参考方案1】:

在这种情况下,非纯 OO 语言是一种语言,并非一切都是对象。例如,Java 具有“原始”类型,其行为与对象不同。例如,Java 的原始类型是按值传递的,而 Java 在传递它的对象时传递引用。

相比之下,Python 将一切都视为对象,虽然它有内置类型,但它没有原始类型,一切都是对象。

我认为您误解了对类的引用。我不认为他们说纯 OO 语言没有类。

【讨论】:

有没有没有类的OO语言?我从来没有遇到过。 @SHC javascript,例如。 另一种没有类的OO语言:Self. 该 qoute AFAIK 的部分观点是面向类的语言,如 Java、C#、C++ 等让我们在类中思考比在对象中更多。因此更面向类而不是面向对象。 类是写入和编译时工件。对象是运行时存在的东西。更多地考虑对象而不是分类使我们的思维更接近系统将如何运行以及用户与之交互的结果。

以上是关于什么是 DCI 上下文中的“纯面向对象语言”?的主要内容,如果未能解决你的问题,请参考以下文章

JS面向对象

JS面向对象

JS 面向对象 编程设计

JavaScript初探系列之面向对象

JS面向对象的程序设计

学习笔记-面向对象的程序设计