面向对象的编程范例

问题描述 投票:0回答:4

我最近偶然发现了一个有趣的问题(或者可能只是作者的错误),我开始质疑自己。经过一番研究,我不得不说我不能100%确定我的答案,所以我想问我的想法是否正确。问题是:

描述面向对象的编程范式s

我一开始以为这就是多态、继承、封装、抽象。但为什么会有多种形式呢?据我了解,我的答案是范式(单个)的描述,而不是范式(复数)。我错过了什么吗,或者这是正确的答案?

oop theory paradigms
4个回答
2
投票

我的论点基于

paradigm
的定义,这通常是做某事的一种模式。范式是:

  • 抽象
  • 封装
  • 多态性
  • 继承。

1
投票

您可能想看看 Alan Kay 对此有何评论:http://c2.com/cgi/wiki?AlanKaysDefinitionOfObjectOriented

链接中的必要摘录:

这个定义源自 Smalltalk 的早期版本(Smalltalk-72?),规则 5 和 6 清楚地显示了 Smalltalk 的 Lisp 遗产。 Kay 如此评论,并指出规则 4-6 会随着 Smalltalk 的发展而发生变化。

  1. 一切都是对象。
  2. 对象通过发送和接收消息(就对象而言)进行通信。
  3. 对象有自己的内存(就对象而言)。
  4. 每个对象都是类的实例(该类必须是对象)。
  5. 该类拥有其实例的共享行为(以程序列表中的对象的形式)
  6. 要评估程序列表,控制权将传递给第一个对象,其余部分将被视为其消息。

“Alan Kay,被一些人认为是面向对象编程之父,他将以下特征确定为 OOP 的基础:”

  1. 一切都是对象。
  2. 通信是对象之间进行通信,请求对象执行操作。对象通过发送和接收消息进行通信。消息是对操作的请求,与完成任务可能需要的任何对象捆绑在一起。
  3. 对象有自己的内存,内存由其他对象组成。
  4. 每个对象都是类的实例。类仅表示一组相似的对象,例如整数或列表。
  5. 类是与对象关联的行为的存储库。也就是说,作为同一类实例的所有对象都可以执行相同的操作。 到目前为止,与上面的1-5类似。规则 6 有所不同。对列表的引用被删除,取而代之的是:
  6. 类被组织成单根树结构,称为继承层次结构。与类实例关联的内存和行为可用于与此树结构中的后代关联的任何类。

0
投票

这取决于视角,更好地说是粒度,或者你想比较或强调什么。

面向对象编程是其中一种编程范式。但面向对象编程也有不同的类别。将它们称为面向对象编程范例是有意义的。

请参阅 https://en.wikipedia.org/wiki/Object-oriented_programming 以获取精美的编程范例列表。


0
投票

OOP 起源于 20 世纪 60 年代末和 1970 年代初,并于 20 世纪 80 年代末正式引入。 OOP 的主要支持者是 Alan Kay、Bertrand Meyer 和 Grady Booch。

OOP 背后的思想是在计算机程序中表示现实世界的对象及其行为。这使得开发人员能够编写更直观、更容易理解的软件,并通过创建可在多个应用程序中使用的对象来重用代码。

面向对象编程(OOP)是一种基于对象概念的编程范式,对象可以包含数据和行为。在 OOP 中,对象通过发送消息来相互交互,并且对象可以分组为类,类定义它们共享的行为和数据。

OOP 随着时间的推移而发展,它的使用在软件行业中已经变得广泛。如今,多种编程语言支持 OOP,包括 PHP、Java、Python、C++、Ruby 等。

© www.soinside.com 2019 - 2024. All rights reserved.