设计模式的六大原则

324 阅读3分钟

设计模式是软件开发工作者在长期的工作实践中通过总结经验教训而得出的一种解决方案,代表了某些场景下的最佳实践。

了解并掌握设计模式是每个优秀的Android开发工程师必须要掌握的,也是面试中的常客。

本文带你了解一下软件设计模式的六大原则:

  • 单一职责原则
  • 开放封闭原则
  • 里式替换原则
  • 依赖倒置原则
  • 迪米特原则
  • 接口隔离原则

单一职责原则

定义:就一个类而言,应该仅有一个引起它变化的原因。

简单说就是一个类不应该承担过多的职责,如果职责功能太多,就容易造成职责耦合。比如在日常开发中,Activity是不是有很多逻辑呢?网络请求,RecyclerView的adapter等逻辑,就会造成Activity比较臃肿。

开放封闭原则

定义:类,模块,函数等应该是可以扩展的,但是不可修改。

日常开发工作中,考虑到需求的不断变化,我们在设计功能的时候,可以参考此原则,增加抽象的功能类,让具体的操作作为功能类的子类。

里式替换原则

定义:所有引用基类(父类)的地方必须能透明的使用其子类的对象。

里斯替换原则是实现开放封闭原则的重要方式之一。在运用里式替换原则进行设计时, 尽量把父类设计成抽象类或者接口,让子类继承父类或实现接口,并实现父类中声明的方法。

依赖倒置原则

定义:高层模块不应该依赖底层模块,两者都应该依赖抽象。抽象不应该依赖细节,细节应该依赖抽象。

java中,抽象指的是抽象类或者接口,两者都是不能直接被实例化的;细节就是实现类,实现接口或者继承抽象类而产生的就是细节,就是通过关键字new产生的对象。高层模块是调用端,底层模块就是具体的实现类。在java中,模块间的依赖都是通过抽象发生的,实现类之间不发生直接的依赖关系。

迪米特原则

定义:一个软件实体应该尽可能少的与其他实体发生相关作用。

因此进行开发设计时,应该尽量减少对象之间的交互,通过引入一个合理的第三方角色来降低现有对象之间的耦合度。有以下三个点值得我们注意:

  • 尽量创建松耦合的类
  • 在类的结构设计上,尽量降低其成员变量和成员函数的访问权限
  • 引用其他对象时,一个对象对其他对象的引用应当降到最低。

接口隔离原则

定义:一个类对另一个类的依赖应该建立在最小的接口上。

简单来说就是,建立单一接口,不要建立庞大臃肿的接口;尽量细化接口,接口中的方法尽量少。为各个类设计专用的接口,不要试图建立一个很庞大的接口供所有依赖它的类调用,当然也要有限度。

参考资料: Android进阶之光