六大原则
单一职责原则
不管干啥,我都只干一件事情,比如,你叫我去买菜,我就只去买菜,叫我顺便丢垃圾我不会干!
范围:接口和方法必须保证单一职责,类就不必保证,只要符合业务就OK了。
目的:提高代码的可阅读性,可扩展性,可维护性。
里氏替换原则
类似于父子,儿子必须会父亲会的技能,而且不能在父亲的技能上做创新(不能覆盖重写)。
依赖倒置原则
1.不应该依赖低层模块,两者都应该依赖其抽象(模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的)
2.象不应该依赖细节(接口或抽象类不依赖于实现类)
3.细节应该依赖抽象(实现类依赖接口或抽象类)
有点抽象,详见员工故事
接口隔离原则
根据实际情况,具体业务具体分析设计接口,宁缺毋滥!
很多类实现了同一个接口,并且都只实现了接口的极少部分方法,这时候很有可能就是接口隔离性不好,就要去分析能不能把方法拆分到不同的接口。
迪米特法则
每个单元对于其他的单元只能拥有有限的知识:只是与当前单元紧密联系的单元。是你的就别给别人,不是你的就不能动!
如手机看书,手机能做的只是打开阅读app,只有app才能打开书籍,手机不能直接打开书籍。
开闭原则
软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的。
对扩展开放,对修改封闭。