原则是指基本事实或主张,是信仰体系,行为准则或推理的基础。
提起面向对象设计(OOD)的设计原则,大家立刻就能想到最基本的5大设计原则。我们首先看一下最基本的5大设计原则。
1)单一职责原则
类的每个关注点都是一个变化轴。一个类最好只有一个关注点,只有一个能导致它发生变化的原因。
2)开闭原则(OCP)
类的设计应该对扩展开放,对修改封闭。对于新的需求,能够在不影响其他代码的情况下进行扩展;只有在修改bug的情况下对原有代码进行修改。(我的理解是:在对原有代码进行修改的时候,不能对其他代码造成影响。)开闭原则的核心思想就是要针对接口编程,而不是针对具体类编程。
3)依赖倒转原则(DIP)
人正常的思维过程是从具体的对象中提取出抽象,也就是说抽象是依赖于具体对象的。这个原则的核心就是要倒转这个依赖关系,使具体要依赖于抽象。高层模块不应该依赖于底层模块,两者要同时依赖于抽象。
4)接口隔离原则(ISP)
接口应该是内聚的,不要创建一个大而全的接口,而是要使用多个小而专的接口。不能强迫客户依赖他使用不到的方法。
5)里氏代换原则(LSP)
必须能够通过父类接口使用子类,而客户并不知道这种差别。代码中所有使用父类的地方,都可以用子类代替。子类型至少提供父类型承诺的行为。
在5大设计原则之外,还有一个重要的设计原则——迪米特法则。迪米特法则也被人们称为第6大设计原则。
6)迪米特法则
又被称作最少知道原则。一个对象应该对被依赖的