开闭原则 对扩展开放,对修改关闭。 一方面满足了变化的需求,另一方面确保了系统的稳定性以及缩小了测试范围,提高了系统的稳定性 里式替换原则 主要是对开闭原则实现的一些补充,什么时候该继承,什么时候不该继承,描述的是类与类之间的关系 主要的要求: 子类可以扩展父类的功能,但不能改变父类原有的功能。也就是说:子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法。 依赖倒置原则 依赖倒置原则是实现开闭原则的重要途径之一,它降低了客户与实现模块之间的耦合。描述的是接口或抽象类与实现类之间之间的关系 单一职责原则 这里的职责是指类变化的原因,单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分。 描述的是单个类的设计原则,要求有且仅有一个变化维度。 接口隔离原则 一个类对另一个类的依赖应该建立在最小的接口上。描述的是接口与客户端之间的关系,要求接口的设计应该满足客户使用的最小接口。 迪米特法则 如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。 合成复用原则 它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。 开闭原则 总的一个要求 里式替换 继承关系实现开闭原则 依赖倒置原则 建议使用接口与抽象,面向抽象编程 单一职责 建议功能模块在职责上尽量单一 接口隔离原则 依赖倒置是建议面向抽象编程,接口隔离原则是具体实现如何抽象编程,从客户使用端看接口是否都是必须存在的。 迪米特法则 描述的是对象之间存在关联关系的时候如何去做,建议使用中介类转发共同完成工作。 合成复用原则 合成复用原则同里氏替换原则相辅相成的,两者都是开闭原则的具体实现规范。优先使用合成复用原则。