设计模式六大原则
是什么
设计模式是一套代码设计的经验总结
为什么
- 设计模式能提高代码复用率、可维护性和可拓展性,降低开发成本和周期;
- 使代码更容易被其他人理解、更加优雅
为什么要使用设计模式这个问题,知乎上有位大佬的回答我感觉解释的也比较好:为什么我们需要学习(设计)模式。
其中的核心思想就是:为了去学习这些设计模式的思想,让我们更好地组织自己的代码。
设计模式的六大原则
单一职责原则
定义:就一个类而言,应该仅有一个引起它变化的原因。
说白了就是为了解耦,尽量一个类只干一件事,每个类的作用或者说职责不要太多。
开放封闭原则
定义:类、模块、函数等应该都是可以拓展的,但是不可修改。
实现方法就是增加一个抽象的功能类或接口,让子类去实现父类或接口具体的功能。这样如果我们再新增功能,你就无须修改原有的类,只需要添加一个子类实现父类的方法就可以了。
里氏替换原则
定义:所有引用父类的地方必须能透明地使用其子类的对象。
它是开放封闭原则的具体实现之一。在软件中将一个基类对象替换成子类对象,程序将不会产生任何错误和异常。但是反过来就不行了,有子类出现的地方父类就未必能适应。
感觉其实就是在说多态。
依赖倒置原则
定义:抽象不应该依赖于细节,细节应该依赖于抽象。
在Java中的表现就是,模块间的依赖通过抽象发生,实现类之间不发生直接依赖关系,其依赖关系是通过接口或者抽象类产生的。
迪米特原则
也称为最少知识原则。
定义:一个软件实体应当尽可能少地与其他实体发生作用
当一个类或模块被修改时尽量减少对其他模块的影响。
具体做法如下:
- 类与类之间尽量解耦
- 每个类尽量降低其成员变量和方法的访问权限
- 一个对象对其他对象的引用降到最低
接口隔离原则
定义:一个类对另一个类的依赖应建立在最小的接口上。
就是使用多个专门功能的接口,而不是使用单一的总接口。
设计模式的分类
参考资料
《Android进阶之光》