Java技术_每天掌握一种设计模式(002)_使用场景及简单实例(创建型:单例模式)...

Java技术_每天掌握一种设计模式(001)_设计模式概念及分类

Java技术_每天掌握一种设计模式(002)_使用场景及简单实例(创建型:单例模式)

Java技术_每天掌握一种设计模式(003)_使用场景及简单实例(创建型:工厂方法)

Java技术_每天掌握一种设计模式(004)_使用场景及简单实例(创建型:抽象工厂)

Java技术_每天掌握一种设计模式(005)_使用场景及简单实例(创建型:建造模式)

Java技术_每天掌握一种设计模式(006)_使用场景及简单实例(创建型:原型模式)


1.模式描述

一个类有且仅有一个实例,并且自行实例化并向整个系统提供。

2.模式作用

保证某个类在系统中只有一个实例对象,对于特殊需求来说非常必要。
限制了实例个数有利于GC的回收。

等等。//TODO

3.适用场景

一个类有且只能有一个实例的时候

等等。//TODO

例如:网站计数器、windows系统的任务管理器

4.模式要素

该类只能有一个实例。该类提供一个该类的私有静态对象。
该类自行创建这个实例该类只提供私有构造方法。
该类自行对外提供这个实例。该类提供公用方法来创建或获取这个私有静态对象。

5.类图

Java技术_每天掌握一种设计模式(002)_使用场景及简单实例(创建型:单例模式)..._第1张图片

6.模式实例代码

单例:

package com.demoFound.singleton;

/**
 * 单例模式
 * 
 * @author popkidorc
 * 
 */
public class MySingleton {

	// 私有静态实例
	private static MySingleton newInstance = null;

	// 私有构造方法
	private MySingleton() {
	}

	// 对外的公用访问点,用来创建或获取实例
	public static synchronized MySingleton getInstance() {
		if (newInstance == null) {
			newInstance = new MySingleton();
		}
		return newInstance;
	}
}


消费者:

/**
 * 单例模式_消费者类
 * 
 * @author popkidorc
 * 
 */
public class MySingletonMain {

	public static void main(String[] args) {
		System.out.println("1." + MySingleton.getInstance());
		System.out.println("2." + MySingleton.getInstance());
		System.out.println("3." + MySingleton.getInstance());// 均是同一个对象,在同一个内存中
	}
}


点击进入ooppookid的博客

你可能感兴趣的:(Java技术_每天掌握一种设计模式(002)_使用场景及简单实例(创建型:单例模式)...)