单例模式

来源:互联网 发布:echo.js下载 编辑:程序博客网 时间:2024/06/05 15:44

前言:

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

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


单例模式的定义:

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


单例模式的代码示例:

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

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;    }    }


总结:

单例模式没啥总结的,一言以蔽之,就是实现让一个类只能创建唯一一个实例

0 0
原创粉丝点击