创建模式--辛格尔顿

 一个类仅有一个实例,并提供一个訪问它的全局訪问点。

适用场所:

当类仅仅能有一个实例并且适用者能够从一个訪问点訪问它时。

当这个唯一实例应该是通过子类化可扩展的。而且客户应该无需更改代码就能使用一个扩展的实例时。

类图:

                                             

代码描写叙述:

<pre name="code" class="java">/**
 * 定义一个Instance操作,同意客户訪问它的唯一实例。
 * Instance是一个类操作。

* 负责创建它自己的唯一实例。

* @author Linhai Gu
 *
 */
public class Singleton {
	private static Singleton singleton;
	private Singleton(){}
	public static Singleton getInstance(){
		if(null==singleton){
			singleton=new Singleton();
		}
		return singleton;
	}

}

/**
 * 測试
 * @author Linhai Gu
 *
 */
public class MainTest {

	public static void main(String[] args) {
		Singleton singleton1=Singleton.getInstance();
		Singleton singleton2=Singleton.getInstance();
		System.out.println(singleton1);
		System.out.println(singleton2);
	}

}

执行结果:

                                      

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFpX3FpbmdfeHVfa29uZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/41413431    情绪控_

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-10-06 19:38:41

创建模式--辛格尔顿的相关文章

cocos2d-html5 Layer 和 Scene 创建模式

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 var myLayer = cc.Layer.extend({     init:function() {//2  界面         var bRet = false;         if (this._super()) {             bRet = true;         }     

[JAVA设计模式]第二部分:创建模式

声明:原创作品,转载时请注明文章来自SAP师太博客,并以超链接形式标明文章原始出处,否则将追究法律责任! 创建模式... 37

C++设计模式 之 “对象创建”模式:Factory Method

part 0 “对象创建”模式 通过“对象创建” 模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定.它是接口抽象之后的第一步工作. 典型模式 Factory Method Abstract Factory Prototype Builder Part 1 Factory Method 工厂方法 动机(Motivation) 在软件系统中,经常面临着创建对象的工作:由于需求的变化,需要创建的对象的具体类型经常变化. 如何应对这种变化?如何绕过常规的

java设计模式 -------- 创建模式 之 单例模式

本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 单例模式也是创建模式中的一种. 单例模式: 所谓的单例模式,即单一的实例,保证类在内在中只有一个对象. 举例: windows的打印服务,网络计数器 应用: 线程池,数据库连接池,Runtime 在应用单例模式前,先来看一个例子. Student.java public class Student { } StudentTest.java public class Studen

1、Singleton 单件(创建模式)

一.Singleton模式主要应用在一些特殊的类,在整个系统运行中,有且仅有一个实例的场景 二.Singleton模式分为单线程与多线程情况,当然多线程一样适应单线程 单线程:在这种情况下比较容易,因为你的程序你能保证在单线程下运行,所以不要考虑那么多情况 public class Singleton { private static Singleton instance; /// <summary> /// 拒绝类外的成员创建实例 /// </summary> private S

Javascript理解面向对象(一)--对象创建模式

1)工厂模式  通俗来讲就是把原料进厂加工后出厂的一系列流程.在这里只是把原料换成了数据. 以下代码创建了一个createPerson()函数,函数中存在两个属性一个方法,可用于添加并打印person的姓名和年龄信息. <script> function createPerson(name, age) { //1:原料 var obj = new Object(); //2:加工 obj.name = name; obj.age = age; obj.showInfo = function (

深入理解JavaScript系列(47):对象创建模式(上篇)

介绍 本篇主要是介绍创建对象方面的模式,利用各种技巧可以极大地避免了错误或者可以编写出非常精简的代码. 模式1:命名空间(namespace) 命名空间可以减少全局命名所需的数量,避免命名冲突或过度.一般我们在进行对象层级定义的时候,经常是这样的: var app = app || {}; app.moduleA = app.moduleA || {}; app.moduleA.subModule = app.moduleA.subModule || {}; app.moduleA.subMod

深入理解JavaScript系列(48):对象创建模式(下篇)

介绍 本篇主要是介绍创建对象方面的模式的下篇,利用各种技巧可以极大地避免了错误或者可以编写出非常精简的代码. 模式6:函数语法糖 函数语法糖是为一个对象快速添加方法(函数)的扩展,这个主要是利用prototype的特性,代码比较简单,我们先来看一下实现代码: if (typeof Function.prototype.method !== "function") { Function.prototype.method = function (name, implementation)

JavaScript基础对象创建模式之单体/单例模式(Singleton)

首先,单例模式是对象的创建模式之一,此外还包括工厂模式.单例模式的三个特点: 1,该类只有一个实例 2,该类自行创建该实例(在该类内部创建自身的实例对象) 3,向整个系统公开这个实例接口 Java中大概是这个样子: class Singleton { //私有,静态的类自身实例 private static Singleton instance = new Singleton(); //私有的构造子(构造器,构造函数,构造方法) private Singleton(){} //公开,静态的工厂方