简单工厂github
设计模式学习以外观模式数据库
设计模式学习之适配器模式设计模式
Demo传送门服务器
单例模式咱们开发中用的不少了,最多见的是全局配置文件或者具体的如内购支付工具,或者数据库管理,一些第三方SDK如友盟,Bugly等的配置等,那么究竟什么是单例模式呢?下面我描述一个简单场景,分别用普通处理方式和单例模式进行处理,后面会给出单例模式的定义和具体应用场景工具
案例:对配置文件的读取,这个配置文件中设置的是项目中用到的一些参数,好比访问的服务器地址,分正式,测试和预发环境post
咱们建一个配置文件,status:0,1,2表明测试,预发和正式的三种状态,Server表明三种状态下的服务器地址,固然这里只是个例子,具体项目中对多环境的配置这块,我以前写过一篇文章专门讲述过,有兴趣的朋友能够前去查看下App多环境配置的方法学习
言归正传,下面介绍普通方法处理配置文件测试
首先是建一个处理配置文件的类,提供一个解析配置文件的方法,而且在这个类中提供server属性以供外界访问设计
客户端调用以下:
那么这么作的不足之处在哪里呢?从表面看咱们也具备必定的封装性,可是既然是配置文件,配置的东西确定在项目中多处用到,咱们这种方式是生成了一个ParseConfig
的实例变量去访问,若是多处用到,就要在使用到的地方屡次生成实例变量访问,并且对文件的访问也是要消耗资源的,那么有没有可能只初始化一次,对配置文件只解析一次的方法呢?单例模式就能够实现,下面着重讲述一下单例模式
单例模式的定义
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
单例模式的功能
用来保证一个类在运行期间只会被建立一个类实例,此外还提供了全局惟一访问这个类实例的访问点
理论毕竟枯燥,主要仍是看代码实现
客户端调用
入口处初始化
调用