您的位置:首页 > 移动开发 > Android开发

android 设计模式之单例模式详解

2016-05-28 16:39 543 查看
大家对单例模式应该都是耳熟能详,手机内存有限,所以在很多时候我们都需要用到单例模式来减少资源开销,比方涉及到io操作之类,单例模式难点就是在有效降低资源的情况下保证多线程安全

1,饿汉式,一般代码如下

package com.spring.singletonpatten;

/**
* Created by android_swift on 16/5/28.
*/
public class HurrySingleton {
private HurrySingleton() {
}
public static final HurrySingleton hurrySingleton = new HurrySingleton();
public static HurrySingleton getHurrySingleton(){
return hurrySingleton;
}
}


隐藏公共的构造方法,类创建的时候创建一个对象,对外提供一个静态方法,供其他地方调用,永远都只能获取到当前类的唯一一个对象

2,懒汉式,一般代码如下

package com.spring.singletonpatten;

/**
* Created by android_swift on 16/5/28.
*/
public class LazySingleton {
private LazySingleton() {
}
public static  LazySingleton lazySingleton;
public static synchronized LazySingleton getLazySingleton(){
if (null == lazySingleton){
lazySingleton = new LazySingleton();
}
return lazySingleton;
}
}


同样的道理,也会把public的constactor隐藏起来,但是与之不同的是初始化并非在类创建的时候初始化,而是在第一次调用的时候进行初始化,以后每次调用都会同步一下数据,这样会造成资源的浪费,好处是不需要默认进行初始化,但是相比而言,由于每次都需要同步,而且第一次调用要进行初始化,会造成一定的数据延迟,所以这种方式不推荐
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android