📄 一句话概括
三条边界三根柱子——三要素保证代码组织得好,这三样才保证系统跑得稳。
📝 本节和前面几节的关系
4.15~4.17 讲完三个结构,这一节收口。
一、一张表
包——给名字划地盘——代价:目录结构变复杂。 异常——给失败划通道——代价:可能被吞、开销略大。 垃圾回收——给对象划生死线——代价:停顿、内存占用。 注意每一行都有代价:这三个结构不是免费的福利,是三次有意识的取舍。
二、内置不等于不用理解
Python 里这三样都是内置的:import 一个模块就算用上了包、try/except 是语法不是库、import gc 能手动触发回收。
所以你写代码时几乎不用想它们。
但框架代码里到处是 try/except、import、上下文管理器——看不懂这三样,框架就没法读。
三、回答 4.14 那个问题
为什么它们算【更先进的 OOP 结构】? 因为三大要素只保证了【代码组织得好】,这三样才保证【系统跑得稳】。 组织得好是写给人的,跑得稳是写给机器的。一件软件得同时满足两头。
四、本章的完整地图
三大要素:类(汇总/隐藏/创建很多个)、多态(调用端公用化)、继承(共享一份代码)。 三个结构:包、异常、垃圾回收。 六块合起来,就是这本书后面所有章节的词汇表。 下一章换个角度:这些对象在内存里到底怎么摆。
五、动手 Demo:对进化的 OOP 结构的总结
三个结构、三条边界、三笔代价,排成一张表。 再确认一遍它们在 Python 里是不是都内置。
rows = [
("包", "给名字划地盘", "目录结构变复杂"),
("异常", "给失败划通道", "可能被吞、开销略大"),
("垃圾回收", "给对象划生死线", "停顿、内存占用"),
]
for name, what, cost in rows:
print(name, what, "|代价:", cost)
实跑输出:
--------------------------------------------------------------------
对进化的 OOP 结构的总结
--------------------------------------------------------------------
三个结构,三条边界,**合起来撑起【大规模 OOP 代码】的三根柱子。**
结构 一句话 代价
---------------------------------------------------
包 给名字划地盘 目录结构变复杂
异常 给失败划通道 可能被吞、开销略大
垃圾回收 给对象划生死线 停顿、内存占用
实测 Python 这三样都是内置的:
包 import 一个模块就算用上了
异常 try/except 是语法,不是库
回收 import gc; gc.collect()
**注意:内置不等于不用理解。**
框架代码里到处是 `try/except`、`import`、上下文管理器——
**看不懂这三样,框架就没法读。**
这也回答了 4.14 那个问题:**为什么它们算【更先进的 OOP 结构】?**
**因为三大要素只保证了【代码组织得好】,这三样才保证【系统跑得稳】。**
实测:三条边界、三笔代价——每一行都不是免费的福利,是有意识的取舍。 三要素保证代码组织得好,这三样才保证系统跑得稳——这是 4.14 那个问题的答案。
30 秒实验
- 给你的项目列一张表:三条边界各自靠什么机制在管。
- 想一想:哪一条边界你现在是靠人盯着的,那就是最容易出事的地方。
常见误区
- 以为这三个结构是高级特性、可以后学。读框架代码时第一天就要用。
- 以为它们只有好处。每一条都带着明确的代价。
自测三问(点开对答案)
1. 三条边界和三笔代价各是什么? —— 包(目录变复杂)、异常(可能被吞、开销略大)、垃圾回收(停顿、内存占用)。 2. 为什么说这三个结构算【更先进】? —— 三大要素保证代码组织得好,这三样才保证系统跑得稳——一个给人看,一个给机器跑。 3. 本章一共讲了哪六块? —— 三大要素(类、多态、继承)加三个结构(包、异常、垃圾回收)。- ☐ 下一节(4.19 决心决定OOP的生死)
相关笔记
- 更先进的OOP结构 — 三条边界的地图
- 决心决定OOP的生死 — 技术之外的那一半
- 本书的构成 — 这一章在全书的位置
- 🧩 面向对象是怎样工作的 · 索引