面向对象不是把所有东西都变成 class。它更像是一种管理变化的语言:把稳定的约束留在内部,把真正需要变化的部分暴露出来。
组合优于继承
继承表达的是非常强的关系。大多数时候,组合可以让依赖更局部,也更容易测试。
多态的成本
虚函数带来的灵活性要和调试、内存布局、性能成本一起衡量。小型对象并不需要默认拥有复杂的层次结构。
面向对象不是把所有东西都变成 class。它更像是一种管理变化的语言:把稳定的约束留在内部,把真正需要变化的部分暴露出来。
继承表达的是非常强的关系。大多数时候,组合可以让依赖更局部,也更容易测试。
虚函数带来的灵活性要和调试、内存布局、性能成本一起衡量。小型对象并不需要默认拥有复杂的层次结构。