单一职责原则:就一个类而言,应该仅有一个引起它变化的原因 开放封闭原则:对于扩展是开放的,对于修改是封闭的 是面向对象的核心所在,开发人员应该仅对程序频繁变化的那部分做出抽象,当然拒绝不成熟的抽象一样重要。 依赖倒转: 谁也不要依赖谁,高层模块不应该依赖低层模块,两者应该依赖抽象 里氏替换:子类型必须能替换掉它们的父类型 企鹅不能继承鸟 因为鸟是会飞的