gpt4 book ai didi

OOP:基于类和基于原型(prototype),还有其他选择吗?

转载 作者:行者123 更新时间:2023-12-04 20:24:25 25 4
gpt4 key购买 nike

我知道基于类和基于原型(prototype)的面向对象编程语言,还有其他选择吗?这些是什么?

最佳答案

这些确实是面向对象语言背后的两种主要方法,我不知道另一个完全不同的基本原理。

但是存在一个很多变体两种方法,以及很多其他编程语言结构 处理基于类或基于原型(prototype)的语言的重用/可扩展性。例子:traits, mixin, extension methods, partial class, generics, first-class slots, split objects 等。很多这样的结构最早是在研究论文(ECOOP, OOPSLA, POPL session )中提出的,其中一些成为流行语言的主流。但我会将它们定性为变体,而不是开创性的新基本原则。

请注意,您可以模仿面向对象编程在本身不是面向对象的语言中。例如,对于 Clojure multi-method .面向对象和函数式编程也在慢慢融合,例如在 Scala 中。

编辑

实际上很难列出经典/开创性论文的 list ,而且我不会假装有足够的知识来做到这一点。如果在某个地方有一个,我会非常有兴趣看到它:) 不过,这里有一些你可能会感兴趣。

继承、委托(delegate)、子类型化:

  • Genericity vs inheritance
  • Inheritance Is Not Subtyping
  • On the notion of inheritance
  • Split objects: a disciplined use of delegation within objects

  • 模块、组成、改编
  • Traits: Composable Units of Behavior
  • Expanders: Statically Scoped Object Adaptation for Java
  • JavaGI: Generalized Interfaces for Java
  • 关于OOP:基于类和基于原型(prototype),还有其他选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2745945/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com