您的位置:首页 > 其它

一、创建型模式——单例模式

2016-01-13 16:43 274 查看

一、创建型模式——单例模式

对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题

区别:

饿汉模式:加载类慢,但运行时获取对象的速度比较快,线程安全

懒汉模式:加载类快,但运行时获取对象的速度比较慢,线程非安全

饿汉模式:

饿汉模式会在类被加载时创建该类的唯一实例,而不管是否有程序去调用该实例

package 单例模式.饿汉模式;

/**
* 单例模式Singleton
* 保证程序中本类实例有且仅有一个
* @author ZhangJiaMin
*
*/
public class Singleton {
//私有构造方法
private Singleton(){};
//创建类的唯一实例,且为该类私有静态成员
private static Singleton instance = new Singleton();
//提供获取实例的类方法
public static Singleton getInstance(){
return instance;
}
}


懒汉模式:

懒汉模式会在需要用到类的对象时才创建唯一实例

package 单例模式.懒汉模式;

/**
* 单例模式Singleton
* 保证程序中本类实例有且仅有一个
* 懒汉模式会在需要用到类的对象时创建唯一实例
* @author ZhangJiaMin
*/
public class Singleton {
private Singleton(){}
private static Singleton instance;
public static Singleton getInstance(){
if(instance==null){
instance=new Singleton();
}
return instance;
}
}


测试方法:

package 单例模式.饿汉模式;

public class Test {
public static void main(String[] args) {
Singleton s1=Singleton.getInstance();
Singleton s2=Singleton.getInstance();
if(s1==s2){
System.out.println("s1和s2是同一个实例");
}else{
System.out.println("s1和s2不是同一个实例");
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: