2026-06-09 / 基础知识技能
面向对象与设计原则:从封装、继承到代码坏味道
面向对象的重点是职责分配和不变量保护,不是把数据和方法机械地放进类里。
基础知识算法编程基础
面向对象与设计原则:从封装、继承到代码坏味道
面向对象真正有价值的地方,是把行为放到拥有数据和规则的对象里,让对象保护自己的不变量。
核心概念
封装隐藏内部状态,只暴露有业务意义的操作。继承表达稳定的 is-a 关系,但过深继承会让变化变得困难。组合通常比继承更容易演进。
classDiagram
class Order {
+Submit()
+Cancel()
-EnsureCanSubmit()
}
class Money {
+Amount
+Currency
}
Order --> Money : total
常见坏味道
- God Class:一个类负责所有事。
- Feature Envy:方法总在操作别人的数据。
- Long Parameter List:行为缺少合适对象承载。
- Primitive Obsession:所有概念都用 string/int 表达。
最佳实践
- 先问“谁应该负责这个规则”。
- 把不变量放进对象内部。
- 优先组合,谨慎继承。
- 坏味道出现时,先调整职责边界。