设计原则的一些感悟
1. 原则(SOLID)
单一职责原则(SRP)
定义:一个类只负责一个职责,一个类应该只有一个发生变化的原因
类越简单,越容易修改和查bug,要是类太大了,查个bug都要死人(😂)
开放闭闭原则(OCP)
定义:类、模块和函数应该对扩展开放,对修改关闭
其实这个原则感觉其他更像其他几个原则的一种具体实现方法,实现了它,其他的原则或多或少都使用到了。
里氏替换原则(LSP)
定义:子类型必须能够替换掉它的基类型
牢记子类约束更宽松
接口分离原则(ISP)
定义:客户端不应该调用它不需要的接口,类的依赖关系应该在最小的接口上,不要胖接口
就是将接口更加抽象化,最小化,让调用方不要瞎调用不要的方法。
依赖倒置原则(DIP)
定义:高层模块不应该依赖低层模块,二者都应该依赖于抽象
抽象不应该依赖于实现,实现应该依赖于抽象
核心就是依赖接口不依赖实现
还有一个单独的 迪米特法则(Law of Demeter)
定义:一个对象应该对其他对象有最少的了解
2. 体会
6大原则从整体上来看,其他就是一个关键词--抽象。
将所有的对象都抽象成最小单元,通过组合多态的方式实现出来的成功,会更简洁,更易读,更可维护可扩展。
那什么是抽象呢?
抽象就是万事万物中抽取中其中的共同的,本质的特性,
这是一个概念化的,更高维度的东西。
从程序上来说,就是将业务分离、提纯、简化的一个过程。
评论