Java技术_每天掌握一种设计模式(001)_设计模式概念及分类
Java技术_每天掌握一种设计模式(002)_使用场景及简单实例(创建型:单例模式)
Java技术_每天掌握一种设计模式(003)_使用场景及简单实例(创建型:工厂方法)
Java技术_每天掌握一种设计模式(004)_使用场景及简单实例(创建型:抽象工厂)
Java技术_每天掌握一种设计模式(005)_使用场景及简单实例(创建型:建造模式)
Java技术_每天掌握一种设计模式(006)_使用场景及简单实例(创建型:原型模式)
1.模式描述
一个类有且仅有一个实例,并且自行实例化并向整个系统提供。
2.模式作用
保证某个类在系统中只有一个实例对象,对于特殊需求来说非常必要。
限制了实例个数有利于GC的回收。
等等。//TODO
3.适用场景
一个类有且只能有一个实例的时候。
等等。//TODO
例如:网站计数器、windows系统的任务管理器
4.模式要素
该类只能有一个实例。该类提供一个该类的私有静态对象。
该类自行创建这个实例。该类只提供私有构造方法。
该类自行对外提供这个实例。该类提供公用方法来创建或获取这个私有静态对象。
5.类图
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());// 均是同一个对象,在同一个内存中
- }
- }
原文地址:http://blog.csdn.net/ooppookid/article/details/42556577