《看完一定会系列之六大设计原则》

1.什么是设计模式

设计模式就是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解
其实简单来说,设计模式就是一些解决某类问题的代码设计经验而已。

2.好处

  1. 代码更加优雅,更容易让人理解
  2. 提高复用率,降低开发周期
  3. 提高代码的拓展性和可维护性

3.六大设计原则

1. 单一职责原则

定义

一个类只有一个引起它变化的原因。

理解

对功能进行分类,代码进行解耦,一个类只管一件事

举例

就比如一个网络请求框架大体分为:请求类,缓存类,配置类,不能把这3个混在一起,必须分为3个类去实现不同的功能。

2. 开闭原则

定义

一个实体(类、函数、模块等)应该对外扩展开放,对内修改关闭

理解

每次发生变化时,要通过新的代码来增强现有类型的行为,而不是修改原有代码。

举例

就比如在软件的生命周期内,因为产品迭代,软件升级维护等原因,需要对原有代码进行修改时,可能会给原有代码引入错误,也可能使得我们对整个功能不得不进行重构,并且需要对原有代码进行重新测试,这样的话,对开发周期影响很大,所以开闭原则刚好解决这个问题。

3. 里氏代替原则

定义

继承必须确保超类所拥有的性质在子类中仍然成立。

理解

在继承类时,除了扩展一些新的功能之外,尽量不要删除或者修改对父类方法的引用,也尽量不要重载父类的方法。

举例

你看啊,就比如Object有个方法,叫equals,如果不遵守里氏代替原则,它的子类重载了equals这个方法,并且返回了个null,这个子类的下一个继承者也会返回null,那么,在不同开发人员开发时,可能考虑不到这个问题,那么就可能导致程序崩溃。

4.迪米特法则

定义

一个模块或对象应尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立,这样当一个模块修改时,影响的模块就会越少,扩展起来更加容易。

扫描二维码关注公众号,回复: 8939175 查看本文章
理解

一个对象应该对其他对象有最少的了解;一个类应该对自己需要耦合或调用的类知道得最少,类的内部如何实现、如何复杂都与调用者或者依赖者没关系,调用者或者依赖者只需要知道他需要的方法即可,其他的一概不关心。类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。

举例

一般在使用框架的时候,框架的开发者会抽出一个类供外部调用,而这个主要的类像是一个中介一样去调用框架里面的其他类,恰恰框架里面其他类一般都是不可访问(调用)的,这个框架就遵守了迪米特原则,其他开发人员只关心调用的方法,并不需要关心功能具体如何实现。


5.接口隔离原则

定义

使用多个专门功能的接口,而不是使用单一的总接口

理解

在定义接口方法时应该合理化,尽量追求简单最小,避免接口臃肿

举例

在实际开发中,往往为了节省时间,可能会将多个功能的方法抽成一个接口,其实这设计理念不正确的,这样会使接口处于臃肿的状态,这时就需要合理的拆分接口中的方法,另外抽取成一个独立的接口,避免原有的接口臃肿导致代码理解困难。


6.依赖倒置原则

定义

细节应该依赖于抽象,而抽象不应该依赖于细节

理解

高层模块不依赖低层次模块的细节,不依赖具体的类,而是依赖于接口

举例

比如说我们写一个网络框架,为了满足不同开发者的需求,即能使用高效的OkHttp框架,也可以使用原生的API。那么是如何进行切换的呢,这个时候需要面向接口编程思想了,把一些网络请求的方法封装成一个接口,然后分别创建OkHttp和原生API的接口实现类,当然也可以扩展其他网络框架的应用。

是不是很简单?

4.设计模式分类

废话少说,看图!
Alt
其中打红星的是做完一个Android程序狗必须要掌握的,后续的文章会陆续更新。

发布了30 篇原创文章 · 获赞 78 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/u010302765/article/details/101179149