1.设计模式之终极结合
最近几期博客打算主要讲一下单例模式、观察者模式、Build模式,目的是为了方便后期为大家带来RXJava+Retrofit2.0+Okhttp3结合使用的网络请求框架。
2.单例模式介绍
单例模式是我们使用的最娴熟的模式之一,也是我们App开发者必须会的模式之一。单例模式顾名思义就是在一个App/Project中一个单例对象类只存在一个实例。比如我们一个App中是不是只有一个Application,里面的信息可以应用于整个App,这样我们可以节约很多资源。再比如我们一个App中是不是应该只有一个Glide框架,Glide是一个集缓存、网络请求、线程池等于一身的图片加载框架(类似于以前的ImageLoader现在已经不推荐使用了);这些都是非常消耗资源的,你不可能还实例化多个实例吧。这种为了节约资源应用于整个project,在整个project中只存在一个实例的模式就是单例模式。
3.单例模式定义
一个类中有且只有一个实例,当调用这个类时可以自动化实例并向整个Project(对于Android开发来说,准确一点是整个Module)提供这个实例。
4.单例模式使用最多的两种模式(双锁单例模式,静态内部类单例模式)
- 双锁单例模式(Double Check Lock)
使用多的原因:双锁模式线程安全且资源利用率高,只在第一次实例化的时候进行同步锁。例如Okhttp、Glide、EventBus等很多框架都有用到。
package com.admin;
import android.app.