📄 一句话概括
OOP 难以一言定义——业界从七个角度各自理解:组件拼装、效率可维护、大型开发、现实建模、UML 设计、消息驱动、三大特性;合起来才是完整地图。
📝 本节和前面几节的关系
上一节说了 OOP 是什么货,本节先给全章铺一张地图,之后 7.3~7.9 逐站细看。
一、为什么会有多种理解
OOP 不是数学定义,而是工程实践——不同出身的人从不同侧面拥抱它。 Smalltalk 一系强调【对象间传消息】(观点 6);C++ 一系强调【组件复用】(观点 1、2);企业开发强调【大型分工】(观点 3、5);学院派强调【建模】(观点 4)。 每一路都没说错,也都只说了一面——所以教材干脆摆出七个观点,让你自己合出全貌。
二、七个观点总览
观点 1:通过把组件拼装到一起构建程序——类是零件; 观点 2:能够提升程序的开发效率和可维护性——复用+隔离; 观点 3:是适用于大型程序的开发方法——类是分工单元; 观点 4:就是在为现实世界建模——程序结构跟着现实结构走; 观点 5:可以借助UML设计程序——先画图纸再施工; 观点 6:通过在对象间传递消息驱动程序——程序是一张消息网; 观点 7:使用继承、封装和多态——三大特性是技术核心。
三、怎么用这张地图
初学抓两头入门:观点 1(拼装的直觉)+观点 7(三大特性的机制); 工作后按需补齐:带团队看观点 3,画设计图看观点 5,写 GUI 看观点 6; 观点之间不打架——它们是同一头象的不同部位,而不是七种互相竞争的 OOP。
四、动手 Demo:七种理解一览地图
把七个观点排成一张表,一站一句抓住,之后每节展开一站。
# 七个观点的关键词
views = [
("观点1", "组件拼装"), ("观点2", "复用封装"),
("观点3", "大型分工"), ("观点4", "现实建模"),
("观点5", "UML图纸"), ("观点6", "消息驱动"),
("观点7", "三大特性"),
]
for no, kw in views:
print(no, "->", kw)
实跑输出:
--------------------------------------------------------------------
对 OOP 的七种理解——一张地图
--------------------------------------------------------------------
OOP 难以下一个定义, 业界从七个角度各自理解。先把地图铺开:
观点 一句话抓住 关键词
-------------------------------------------------
观点1 把组件拼装到一起构建程序 组件/拼装
观点2 提升开发效率和可维护性 复用/封装
观点3 适用于大型程序的开发方法 分工/协作
观点4 在为现实世界建模 建模/抽象
观点5 借助 UML 设计程序 类图/图纸
观点6 在对象间传递消息驱动程序 消息/派发
观点7 使用继承、封装和多态 三大特性
地图之后还有两站收尾: 类和对象的区别、类的三种使用方法。
七个观点像盲人摸象——每个只摸到一面, 合起来才是全貌。
接下来 7.3 起逐站细看。
地图之外还有两站收尾(7.10 类和对象、7.11 三种用法)——先地图后景点,是本章的游览顺序。 面试或读书遇到【OOP 是什么】,用这张地图回答比背一个定义更完整。
30 秒实验
- 合上笔记,凭记忆说出七个观点各一词的关键词。
- 挑你最熟悉的一个软件(如微信),猜猜它最常用哪几个观点。
常见误区
- 以为七个观点互相竞争、只能信一个——它们是七面镜子,照的是同一头象。
- 以为 OOP 有官方唯一定义——它是工程实践,业界至今并存多种理解。
自测三问(点开对答案)
1. 七个观点分别从哪些侧面理解 OOP? —— 拼装、效率可维护、大型开发、建模、UML、消息驱动、三大特性。 2. 初学建议先抓哪两个观点? —— 观点 1(拼装直觉)和观点 7(三大特性机制)。 3. 为什么 OOP 有多种理解? —— 它是工程实践不是数学定义,不同出身的人强调不同侧面。- ☐ 下一节(7.3 观点1:面向对象编程通过把组件拼装到一起构建程序)
相关笔记
- 为了贴近人类,计算机在不断地进化 — OOP 也是一次【贴近人类】的进化
- ⌨️ 编程原理 · 索引 — 每一次【贴近人类】的进化都伴随多种声音
- 💻 计算机是怎样跑起来的 · 索引