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 表达。

最佳实践

  • 先问“谁应该负责这个规则”。
  • 把不变量放进对象内部。
  • 优先组合,谨慎继承。
  • 坏味道出现时,先调整职责边界。
面向对象与设计原则:从封装、继承到代码坏味道 | Remi Resume