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

简介:

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

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

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

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

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

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


1.模式描述

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

2.模式作用

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

等等。//TODO

3.适用场景

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

等等。//TODO

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

4.模式要素

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

5.类图


6.模式实例代码

单例:

[java]  view plain  copy
  1. package com.demoFound.singleton;  
  2.   
  3. /** 
  4.  * 单例模式 
  5.  *  
  6.  * @author popkidorc 
  7.  *  
  8.  */  
  9. public class MySingleton {  
  10.   
  11.     // 私有静态实例  
  12.     private static MySingleton newInstance = null;  
  13.   
  14.     // 私有构造方法  
  15.     private MySingleton() {  
  16.     }  
  17.   
  18.     // 对外的公用访问点,用来创建或获取实例  
  19.     public static synchronized MySingleton getInstance() {  
  20.         if (newInstance == null) {  
  21.             newInstance = new MySingleton();  
  22.         }  
  23.         return newInstance;  
  24.     }  
  25. }  


消费者:

[java]  view plain  copy
  1. /** 
  2.  * 单例模式_消费者类 
  3.  *  
  4.  * @author popkidorc 
  5.  *  
  6.  */  
  7. public class MySingletonMain {  
  8.   
  9.     public static void main(String[] args) {  
  10.         System.out.println("1." + MySingleton.getInstance());  
  11.         System.out.println("2." + MySingleton.getInstance());  
  12.         System.out.println("3." + MySingleton.getInstance());// 均是同一个对象,在同一个内存中  
  13.     }  
  14. }  



原文地址:http://blog.csdn.net/ooppookid/article/details/42556577

相关文章
|
10天前
|
监控 Java 物联网
Java串口通信技术探究1:深入理解RXTX库
Java串口通信技术探究1:深入理解RXTX库
24 2
|
1天前
|
设计模式
LabVIEW状态机设计模式技术手册和练习
LabVIEW状态机设计模式技术手册和练习
|
1天前
|
设计模式 Java
【JAVA基础篇教学】第十四篇:Java中设计模式
【JAVA基础篇教学】第十四篇:Java中设计模式
|
3天前
|
设计模式 消息中间件 安全
【Java多线程】关于多线程的一些案例 —— 单例模式中的饿汉模式和懒汉模式以及阻塞队列
【Java多线程】关于多线程的一些案例 —— 单例模式中的饿汉模式和懒汉模式以及阻塞队列
9 0
|
3天前
|
Kubernetes Java 调度
Java容器技术:Docker与Kubernetes
Java容器技术:Docker与Kubernetes
14 0
|
3天前
|
存储 安全 Java
深入理解Java字节码与反编译技术
深入理解Java字节码与反编译技术
13 0
|
3天前
|
设计模式 算法 Java
设计模式在Java开发中的应用
设计模式在Java开发中的应用
15 0
|
3天前
|
监控 Java Maven
揭秘Java Agent技术:解锁Java工具开发的新境界
作为JDK提供的关键机制,Java Agent技术不仅为Java工具的开发者提供了一个强大的框架,还为性能监控、故障诊断和动态代码修改等领域带来了革命性的变革。本文旨在全面解析Java Agent技术的应用场景以及实现方式,特别是静态加载模式和动态加载模式这两种关键模式。
24 0
|
10天前
|
存储 缓存 前端开发
Java串口通信技术探究3:RXTX库线程 优化系统性能的SerialPortEventListener类
Java串口通信技术探究3:RXTX库线程 优化系统性能的SerialPortEventListener类
33 3
|
10天前
|
安全 IDE Java
Java串口通信技术探究2:RXTX库单例测试及应用
Java串口通信技术探究2:RXTX库单例测试及应用
26 4