您的位置:首页 > 其它

单例模式

2016-06-19 22:18 260 查看
前言:

一般情况下,我们知道,一个类所创建的实例的个数是没有限制的;而单例模式,其所起的作用就是确保一个类只能创建一个实例;

下面我们从代码的角度去体会一下单例模式;

单例模式的定义:

保证一个类仅有一个实例,并提供一个访问它的全局访问点;

单例模式的代码示例:

单例模式的实现方式有两种:懒汉式和饿汉式

1>懒汉式

package singletonLan;

/**
* Created by Will Smith on 2016/6/19.
*/
/***
* 懒汉式的单例模式实现
* ***/
public class Singleton {

/***
* 定义一个变量来存储创建好的实例
* ***/
private static Singleton singleton = null;

/***
* 将构造方法私有化,防止其会创建多个实例
* **/
private Singleton(){}

/***
* 供客户端调用,用来返回一个实例
* 这里用synchronized主要是考虑了线程安全的问题,
* 防止由于线程的原因创建多个实例
* **/
public static synchronized Singleton getInstance(){
if(singleton == null){
singleton = new Singleton();
}
return singleton;
}

}


2>饿汉式

package singletonE;

/**
* Created by Will Smith on 2016/6/19.
*/
/***
* 饿汉式的单例模式实现
* ***/
public class Singleton {

/***
* 定义一个变量来存储创建好的实例,
* 直接在这里创建一个实例,且其只会创建一次
* ***/
private static Singleton singleton = new Singleton();

/***
* 将构造方法私有化,防止其会创建多个实例
* **/
private Singleton(){}

/***
* 供客户端调用,用来返回一个实例
* 这里用synchronized主要是考虑了线程安全的问题,
* 防止由于线程的原因创建多个实例
* **/
public static Singleton getInstance(){
return singleton;
}

}


总结:

单例模式没啥总结的,一言以蔽之,就是实现让一个类只能创建唯一一个实例
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: