单例设计模式
来源:互联网 发布:淘宝家居装修日记 编辑:程序博客网 时间:2024/06/08 06:51
Android单例设计模式用的也挺多的,下面写3种常用的吧。
第一种懒汉式:
package com.example.demo10_messenger;/** * Created by fuzhihuang on 2017/7/17. * 单例模式(懒汉式) */public class InstanceClass { private static InstanceClass mInstanceClass = null; public static InstanceClass getInstance() { if(mInstanceClass == null) { synchronized (InstanceClass.class) { if(mInstanceClass == null) { mInstanceClass = new InstanceClass(); } } } return mInstanceClass; }}懒汉式还是很直观的不多bb就是懒,不需要的时候就不加载,需要的时候就调用,至于为什么加同步锁是为了防止多线程并发的情况导致单列模式失效。
第二种饿汉式:
package com.example.demo10_messenger;/** * Created by fuzhihuang on 2017/7/17. * 单例模式(饿汉式) */public class InstanceClass { private static InstanceClass mInstanceClass = new InstanceClass(); public static InstanceClass getInstance() { return mInstanceClass; }}正所谓恶汉式,就是一上来就吃(随着类的加载而加载),调用的话也比较直接。速度的话相对第一种较快。
第三种使用内部类持有类的对象:
package com.example.demo10_messenger;/** * Created by fuzhihuang on 2017/7/17. * 内部类持有类的对象 */public class InstanceClass { private static final class InstanceHolder { private static InstanceClass instance = new InstanceClass(); } public static InstanceClass getInstance() { return InstanceHolder.instance; }}其实这种和第一种差不多也是通过调用来加载。
阅读全文
1 0
- 设计模式--单例
- 单例设计模式
- 设计模式----单例
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 设计模式-单例
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- Retrofit2+OkHttp3+RxJave 三剑客解决网络问题
- Cglib代理
- 快速排序
- android banner 实现轮播图
- android widget
- 单例设计模式
- JVM调优-使用jstack找出耗费CPU的线程及代码
- 重装EM
- C++基础——类与对象(上)
- RabbitMQ (九) Spring集成RabbitMQ(1)
- Chrome无法打开WebGL的解决方法
- 解决Linux中鼠标选中字符会自动跳一行或者执行ctrl+c
- 火狐主页被篡改后的修复办法
- 如何在一个.c文件里调用另一个.c文件里的变量