开闭原则
对外扩展开放,对内修改封闭
里氏替换原则
- 子类必须完全实现父类的方法
- 子类可以有自己的个性
- 覆盖或实现父类的方法时输入参数可以被放大
- 覆写或实现父类的方法时输出结果可以被缩小
- 子类继承父类尽量不要重写父类的方法
依赖倒置原则
程序要依赖于抽象接口,不要依赖于具体实现(尽量使用面向接口编程)
单一职责原则
一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分(实现类职责尽量单一)
接口隔离原则
为各个类建立他们需要的专用接口,不要建立一个庞大的接口供所有依赖它的类去调用
迪米特法则(最少知识原则)
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中的一个类需要调用另一个类的某一个方法的话,可以通过中介类转发这个调用
合成复用原则(组合/聚合复用原则)
在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现
·