Skip to content

Commit c70fec6

Browse files
committed
docs: synced via GitHub Actions
1 parent 22f5a74 commit c70fec6

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/theory/why-composition-over-inheritance.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ superHero.learnAbility(new InvisibleAbility());
178178

179179
#### 结论:OOP三大特性的本质是"构建可推理的类型系统"
180180

181-
我们常说"OOP是对现实世界的抽象",但更深层的本质是:OOP通过封装、继承、多态,构建了一套**基于逻辑蕴含的"可推理类型系统"**
181+
我们常说"OOP是对现实世界的抽象",但更深层的本质是:OOP通过封装、继承、多态,构建了一套**基于逻辑蕴含的"可推理类型系统"**封装保护契约,继承扩展契约,多态消费契约。
182182

183183
这套系统的核心目标,是让开发者能基于"类型关系"(`A > B`)预测代码行为(`P(B) → P(A)`),从而降低复杂系统的认知负荷——当我们调用`process(B obj)`时,无需关心`obj`是B还是其子类A,只需知道"对B合法的操作对A也合法",这便是OOP能支撑大规模软件开发的根本原因。
184184

@@ -285,4 +285,4 @@ App = Generator<DSL> ⊕ Δ
285285

286286
在设计系统时,我们本质上是在进行逻辑建模。继承提供了一种"分类学"模型,而组合提供了一种"结构学"模型。工程实践与理论分析共同证明,后者在驾驭软件固有的复杂性、多变性和协作性方面,远胜于前者。
287287

288-
"组合优于继承"因此不再仅仅是一条经验性的设计原则,它体现了软件工程从依赖技艺向建立数学基础的必然演进。当我们面对下一个设计决策时,应该问自己的不再是"这个对象是什么",而是"这个对象应该由什么构成"。这不仅是技术的转变,更是思维方式的根本进化。
288+
"组合优于继承"因此不再仅仅是一条经验性的设计原则,它体现了软件工程从依赖技艺向建立数学基础的必然演进。当我们面对下一个设计决策时,应该问自己的不再是"这个对象是什么",而是"这个对象应该由什么构成"。这不仅是技术的转变,更是思维方式的根本进化。

0 commit comments

Comments
 (0)