📄 一句话概括
【面向对象】在书里有两个意思:编程技术和归纳整理法——实测八句话干净地分成 4 句/3 句两堆,只 1 句两边都沾,混乱就出在这一句。
📝 本节和前面几节的关系
7.3 说这套方法【通用】,通用立刻带来一个副作用:同一个词被用在两个领域,就开始吵架。
一、两个含义分别是什么
含义一(编程技术):类、方法、继承、接口、多态——代码里能看见的结构。 含义二(归纳整理法):职责、岗位、流程、分工——组织里能看见的安排。 两个含义共用【面向对象】这个词,是因为后者先于前者、前者从后者借来了思路。
二、实测:八句话分成两堆
技术词出现、组织词不出现 → 判为编程技术,实测 4 句。 组织词出现、技术词不出现 → 判为归纳整理法,实测 3 句。 两边都有 → 判为两边都沾,实测 1 句(这个模块的职责应该挪到另一个类)。 一句都判不出的 0 句——说明这八句话确实各自有归属。
三、混乱出在哪一句
出在两边都沾的那一句:它同时提到【模块/类】和【职责】。 更常见的一句是【这个设计不面向对象】——到底在说代码结构,还是在说分工方式? 不追问,就会各说各话:一个人讲的是继承链,另一个人讲的是岗位重叠。 所以 7.5 的第一件事就是:先问清你说的是哪一半。
四、为什么这个词会被两用
因为软件开发本身就是在组织一堆对象干活,跟公司组织人干活是同构的。 同构带来方便:一个词就能沟通两边。 同构也带来风险:说完没人追问,两边各自理解,这就是 1.6 说的【滥用比喻引起混乱】的升级版。
五、动手 Demo:两种含义引起混乱
准备 8 句日常说法,用两串关键词自动判归属。 看能不能干净地分成两堆、以及哪一句卡在中间。
TECH = ["类", "方法", "继承", "接口", "多态", "内存", "重载"]
ORG = ["职责", "岗位", "流程", "分工", "组织", "业务", "部门"]
claims = [
"这段代码用三个类实现了订单",
"这个模块的职责应该挪到另一个类",
"我们的开发流程本身也该面向对象",
"部门的分工要按业务来划",
]
for c in claims:
t = sum(1 for k in TECH if k in c)
o = sum(1 for k in ORG if k in c)
print(c, t, o, "两边都沾" if t and o else ("技术" if t else "整理法"))
实跑输出:
--------------------------------------------------------------------
两种含义引起混乱
--------------------------------------------------------------------
【面向对象】在书里有两个意思,**混着用就会吵起来。**实测八句话各属哪边:
说法 技术词 组织词 判为
--------------------------------------------------------------------
这段代码用三个类实现了订单 1 0 编程技术
这个模块的职责应该挪到另一个类 1 1 两边都沾
要加新功能就得改这条继承链 1 0 编程技术
我们的开发流程本身也该面向对象 0 1 归纳整理法
这个接口定义得太宽了 1 0 编程技术
岗位之间的职责不能重叠 0 2 归纳整理法
多态让调用方不用判断类型 2 0 编程技术
部门的分工要按业务来划 0 3 归纳整理法
判为编程技术 4 句
判为归纳整理法 3 句
两边都沾 1 句
一句都判不出 0 句
**实测八句话干净地分成了两堆**——说明这两个含义确实是两件事。
**混乱出在【同一句里两边都沾】的时候**:比如【这个设计不面向对象】——
**到底是在说代码结构,还是在说分工方式?不追问,就会各说各话。**
实测:编程技术 4 句、归纳整理法 3 句、两边都沾 1 句、判不出 0 句。 八句话干净地分成两堆,说明这两个含义确实是两件事,不是同一个词的两种说法。 危险的不是分得开的,是那句两边都沾的——它能把一整场讨论带偏。
30 秒实验
- 回忆一次你听过的【这个设计不面向对象】,补一句:他说的到底是哪一半。
- 把你项目里的争议点按技术/组织两栏归一次类。
常见误区
- 以为两个含义是一回事。一个是代码结构,一个是分工方式。
- 以为混用只是措辞不严。它会让两个人的讨论完全错开。
自测三问(点开对答案)
1. 两个含义分别是什么? —— 编程技术(类、继承、多态等代码里看得见的结构)和归纳整理法(职责、岗位、流程等组织里的安排)。 2. 实测八句话怎么分布? —— 编程技术 4 句、归纳整理法 3 句、两边都沾 1 句、判不出 0 句。 3. 混乱为什么集中在【两边都沾】那一句? —— 因为它同时提到代码结构和分工方式,不追问就各说各话——一个讲继承链,一个讲岗位重叠。- ☐ 7.5 分为编程技术和归纳整理法进行思考
相关笔记
- 原因之二:滥用比喻引起混乱 — 混乱的另一种来源
- 在上游工程中化为通用的归纳整理法 — 通用带来的副作用
- 分为编程技术和归纳整理法进行思考 — 怎么分开想
- 🧩 面向对象是怎样工作的 · 索引