设计模式六大原则
1.单一原则(Single Responsibility Principle):一个类或者一个方法只负责一项职责。
一个类或方法不能过于复杂!否则复用性会降低。
2.里氏替换原则(LSP liskov substitution principle):子类可以扩展父类的功能,但不能改变原有父类
的功能
3.依赖倒置原则(dependence inversion principle):面向接口编程,(通过接口作为参数实现应用
场景)
抽象就是接口或者抽象类,细节就是实现类
上层模块不应该依赖下层模块,两者应依赖其抽象;
抽象不应该依赖细节,细节应该依赖抽象;
通俗点就是说变量或者传参数,尽量使用抽象类,或者接口;
4.接口隔离(interface segregation principle):建立单一接口;(扩展为类也是一种接口,一切皆
接口)
定义:
a.客户端不应该依赖它不需要的接口;
b.类之间依赖关系应该建立在最小的接口上;
简单理解:复杂的接口,根据业务拆分成多个简单接口;(对于有些业务的拆分多看看适配器的应用)
【接口的设计粒度越小,系统越灵活,但是灵活的同时结构复杂性提高,开发难度也会变大,维护性降
低】
5.迪米特原则(law of demeter LOD):最少知道原则,尽量降低类与类之间的耦合,一个对象应该
对其他对象有最少的了解
6.开闭原则(open closed principle):对扩展开放,对修改闭合
问题由来:任何软件都需要面临一个很重要的问题,即它们的需求会随时间的推移而发生变化。因为变化,升级和维护等原因,如果需要对软件原有代码进行修改,可能会给旧代码引入错误,也有可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试,所以当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现使我们需要的。