【问题标题】:Programming with ADTs without OOP?在没有 OOP 的情况下使用 ADT 进行编程?
【发布时间】:2020-10-02 17:17:51
【问题描述】:

OOP 是否意味着范式围绕 ADT,因为 ADT 是对象的基础?如果是这样,如果在程序上使用 ADT,那么程序代码是什么?

【问题讨论】:

标签: oop adt


【解决方案1】:

我不确定我是否完全理解您的问题,但即便如此,ADT 早于语言(或语言编译器)的 OOP 直接支持。这通常意味着您可以(可以)模拟 OOP 支持,当它确实(不)存在(ed)时,通过操纵 ADT 并遵循您尊重的某些约定(您自己,而不是由编译器强制)。如果你这样做,你就是在以面向对象的风格编写代码,尽管只使用了可用的过程机制。

【讨论】:

  • 很有趣,感谢您的意见。我一直在阅读这个主题,en.wikipedia.org/wiki/Object-Oriented_Software_Construction 它贯穿了一切。提出的一点是对象应该由 ADT 支持,并继续说类是与模块交叉的 ADT。这是一个非常令人困惑的话题,OOP 绝对是您所说的一种风格,但它也被称为范式,似乎我们对 OOP 编程的时间比 OOP 语言的存在时间要长得多!我想知道为什么 OOD 出现在结构化设计之后?
  • 这可能意味着通过使用 ADT 的类,您可以获得类似于使用封装在模块中的 ADT 的封装优势。
  • 这是一个进化问题。 OOP 是对其他较低级别概念的抽象。这些出现在过程编程中,密切反映了 CPU 指令集可能的一些构造。这就是为什么 C 语言看起来像它的样子。这是可用 CPU 指令和功能的自然映射。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-21
  • 2016-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
相关资源
最近更新 更多