OCP 开闭原则
抽象化
对扩展开放,对修改关闭。设计一个模块时,应当使这个模块可以在不被修改的前提下被扩展。
比如设计优惠接口,每新增一种优惠方案时只新增,不去修改已有的接口。设计模式上我们可以选择策略。从而达到开闭原则
对可变性的封装原则
可变性封装起来,不同可变性不可混合
里氏代换原则
基类可以出现的地方,子类一定可以出现
依赖倒置原则
依赖于抽象,而非实现
合成/聚合复用原则
尽量使用合成/聚合,而不是继承关系达到复用的目的
迪米特法则
一个软件实体应尽可能少的与其他实体发生相互作用
接口隔离原则
尽可能提供小的单独的接口