单一职责原则(SRA) 一个类应该只做一件事。 不应有多个变更类的原因 开闭原则(OCP) 软件实体应对扩展开放,对修改关闭。 即,通过继承,组合而非修改原代码来扩展功能 里氏替换原则(LSP) 子类应当可以安全地替换客户代码中的基类引用 接口隔离原则(ISP) 不强迫客户依赖他们不使用的接口 即,接口应尽量小(接口的单一职责) 依赖倒置原则(DIP) 高级模块不应依赖于低级模块 两者都应依赖于抽象 抽象不应依赖于实现 实现因依赖抽象