当前位置:首页 > 开发 > 编程语言 > 设计模式 > 正文

设计模式——单例模式

发表于: 2014-06-30   作者:ayaoxinchao   来源:转载   浏览:
摘要: 定义          Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”   分析          从定义中可以看出单例的要点有三个:一是某个类只能有一个实例;二是必须自行创建这个实例;三是必须自行向系统提供这个实例。   &nb

定义

 

       Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”

 

分析

 

       从定义中可以看出单例的要点有三个:一是某个类只能有一个实例;二是必须自行创建这个实例;三是必须自行向系统提供这个实例。

       实现角度看就是要有以下三点:一是类只提供私有的构造函数(方法);二是类定义中含有一个该类的私有静态对象;三是该类提供了一个共有的函数(方法)用于创建或获取它本身的静态私有对象。

 

动机

 

       1.节约内存

       2.避免当多个实例存在的时候,引起程序逻辑错误

 

实现1_懒汉方式

public class Singleton1 {
	
	private static Singleton1 singleton = null;
	
	private Singleton1() {
		
	}
	
	public static Singleton1 getInstance () {
		if (singleton == null) {
			singleton = new Singleton1();
		}
		return singleton;
	}

}

 

实现2_恶汉方式(线程安全)

public class Singleton2 {
	
	private static Singleton2 singleton = new Singleton2();
	
	private Singleton2() {
		
	}
	
	public static Singleton2 getInstance() {
		return  singleton;
	}

}

实现3_双重锁方式(线程安全)

public class Singleton3 {
	
	private static Singleton3 singleton = null;
	
	private Singleton3() {
		
	}
	
	/**
	 * 这个模式将同步内容下方到if内部,提高了执行的效率,
	 * 不必每次获取对象时都进行同步,只有第一次才同步,创建了以后就没必要了。
	 * @author Perlin
	 * @date 2014-6-30
	 * @return
	 */
	public static Singleton3 getInstance () {
		if (singleton == null) {
			synchronized (Singleton3.class) {
				if (singleton == null) {
					singleton = new Singleton3();
				}
			}
		}
		return singleton;
	}

}

 

设计模式——单例模式

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
转自: http://baike.baidu.com/link?url=UcxeuDIltmc8Rh6s1s4I8gvjWbKa8EAVDmMlZhDwIwEZNhSVCuHB_o
今天看视频,又讲到了单例模式。回忆起第一次去面试的时候,面试官问是否用过单例模式,我很肯定的
java模式之单例模式: 单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例
单例模式 单例模式"> 单例模式有两种写法: 饿汉式: /** * * 此类描述的是: 单例模式 * 饿汉式
摘要 本文将主要讲解创建型模式中的单例模式先来讲解,因为单例模式是最简单也是最容易理解的设计模
单例模式的定义 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 生活中的例
单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个
1 初识单例模式: 定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点 结构: 参考实现:
单例模式 Singleton单例:一个类在有且只有一个实例,并提供一个全局的访问点,私有化构造函数,提
单例模式(Singleton) 保证一个类只有一个实例,并提供一个访问它的全局访问点。 关键在于要有 1、一
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号