任务管理器案例

1.单例类

package Singleton;/*** Created by Jim on 2016/9/28.*/
public class TaskManager {private static TaskManager tm = null;private TaskManager() {System.out.println("创建任务管理器");}public void displayProcesses() {System.out.println("显示进程");}public void displayServices() {System.out.println("显示服务");}public static TaskManager getInstance() {if (tm == null) {tm = new TaskManager();}return tm;}}

2.客户端

package Singleton;public class Client
{public static void main(String args[]){try{TaskManager tm = TaskManager.getInstance();tm.displayProcesses();tm.displayServices();TaskManager tm2 = TaskManager.getInstance();tm2.displayProcesses();tm2.displayServices();}catch(Exception e){System.out.println(e.getMessage());}}
}

身份证办理案例

1.单例类

package Singleton;/*** Created by e550 on 2016/9/29.*/
public class IdentityCardNo {private static IdentityCardNo instance=null;private String no;private IdentityCardNo(){}public static IdentityCardNo getInstance(){if(instance==null){System.out.println("第一次办理身份证,分配新号码!");instance=new IdentityCardNo();instance.setIdentityCardNo("No400011112222");}else{System.out.println("重复办理身份证,获取旧号码!");}return instance;}private void setIdentityCardNo(String no){this.no=no;}public String getIdentityCardNo(){return this.no;}
}

2.客户端类

package Singleton;public class Client
{public static void main(String args[]){try{IdentityCardNo no1,no2;no1=IdentityCardNo.getInstance();no2=IdentityCardNo.getInstance();System.out.println("身份证号码是否一致:" + (no1==no2));String str1,str2;str1=no1.getIdentityCardNo();str2=no1.getIdentityCardNo();System.out.println("第一次号码:" + str1);System.out.println("第二次号码:" + str2);System.out.println("内容是否相等:" + str1.equalsIgnoreCase(str2));System.out.println("是否是相同对象:" + (str1==str2));}catch(Exception e){System.out.println(e.getMessage());}}
}

执行结果:

第一次办理身份证,分配新号码!
重复办理身份证,获取旧号码!
身份证号码是否一致:true
第一次号码:No400011112222
第二次号码:No400011112222
内容是否相等:true
是否是相同对象:true

打印池

1.打印池类

package SpoolerSingleton;public class PrintSpoolerSingleton
{private static PrintSpoolerSingleton instance=null; // 打印池private PrintSpoolerSingleton(){}public static PrintSpoolerSingleton getInstance() throws PrintSpoolerException{if(instance==null){System.out.println("创建打印池!");instance=new PrintSpoolerSingleton();}else{throw new PrintSpoolerException("打印池正在工作中!");}return instance;}public void manageJobs(){System.out.println("管理打印任务!");}
}

2.异常辅助类

package SpoolerSingleton;public class PrintSpoolerException extends Exception
{public PrintSpoolerException(String message){super(message);}
}

3.客户端类

package SpoolerSingleton;public class Client
{public static void main(String a[]){PrintSpoolerSingleton ps1,ps2;try{ps1=PrintSpoolerSingleton.getInstance();ps1.manageJobs();}catch(PrintSpoolerException e){System.out.println(e.getMessage());}System.out.println("--------------------------");try{ps2=PrintSpoolerSingleton.getInstance();ps2.manageJobs();}catch(PrintSpoolerException e){System.out.println(e.getMessage());}}
}

执行结果:

创建打印池!
管理打印任务!
--------------------------
打印池正在工作中!

转载于:https://www.cnblogs.com/jiqing9006/p/5918556.html

JAVA设计模式之【单例模式】相关推荐

  1. Java设计模式之单例模式(七种写法)

    Java设计模式之单例模式(七种写法) 第一种,懒汉式,lazy初始化,线程不安全,多线程中无法工作: public class Singleton {private static Singleton ...

  2. Java设计模式之单例模式的学习

    本篇是本人的第二篇博客 旨在记录本人对于Java设计模式之单例模式的学习和理解,也希望本篇可以对一些正在学习的小伙伴起到一些帮助 单例模式(singleton)的特点: 1.单例模式有且仅有一个实例: ...

  3. java设计模式之单例模式(七种方法)

    单例模式:个人认为这个是最简单的一种设计模式,而且也是在我们开发中最常用的一个设计模式. 单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个 ...

  4. Java 设计模式(3)单例模式

    前言 概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记式单例. 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自 ...

  5. java设计模式之——单例模式(八种实现)

    一.介绍 有时,我们需要某个类的实例始终只有一个,举个例子,如果用面向对象语言写的操作系统,那么桌面这个实例肯定就只有一个,无论从哪个地方进入的桌面,都是同一个. 所谓类的单例设计模式,就是采取一定的 ...

  6. Java设计模式之单例模式(Singleton Pattern)

    **单例模式:用来创造独一无二的,只能有一个实例的对象设计模式.单例模式确保一个类只有一个实例,并提供一个全局访问点.**相比于全局变量(对对象的静态引用),单例模式可以延迟实例化,而且全局变量不能保 ...

  7. Java设计模式:单例模式

    学而时习,稳固而之心, 好久没有复习java的知识了,今天有空温习了单例模式,这里记录一下 单例模式是常见的设计模式的一种,其特点就是 指一个类只有一个实例,且该类能自行创建这个实例  , 保证一个类 ...

  8. Java 设计模式之单例模式

    单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 这种模式涉及到一个单一的类,该类负责创建自己的对 ...

  9. Java设计模式(二) -- 单例模式

    单例模式是Java中最广泛应用的设计模式之一,为创建对象提供了一种绝佳的方式.因此,在一些Java程序中, 一些管理器和控制器经常被设计为单例模式. 这种模式涉及到一个单一的类,该类负责创建自己的对象 ...

  10. java设计模式学习 ----- 单例模式(Singleton)

    单例模式(Singleton) 单例对象(Singleton)是一种经常使用的设计模式. 在Java应用中,单例对象能保证在一个JVM中,该对象仅仅有一个实例存在.单例模式也分三种:懒汉式单例.饿汉式 ...

最新文章

  1. python写一个通讯录V2.0
  2. linux下mysql数据库目录迁移_linux下mysql数据库目录迁移问题
  3. mysql导入创建表空间_oracle创建表空间 用户 数据库导入和导出(转)
  4. 【转】PF_RING开发指南
  5. 案例解读:RMAN 备份控制文件报错 ORA-00230
  6. Java之switch的控制语句详解
  7. linux mtp设备,这么烂的MTP 为何现在所有Android设备都不能不用
  8. Linux(ARM glibc)使用libhybris调用Android(ARM bionic)
  9. js 冒泡排序_JS 里的简易算法和数据结构之复杂度
  10. 基于精确背景补偿的动态目标检测算法
  11. Python数据分析学习系列 六 数据加载、存储与文件格式
  12. Unity 图片切割九宫格
  13. where in 和where=
  14. java环境变量配置 JDK环境变量
  15. GitHub使用教程详细图解
  16. lisp 套料_【CAD二次开发CAD定制开发cad插件开发LISP开发】- 中国工程机械网
  17. 业务元数据管理——洞悉数据背后的业务含义
  18. C primer plus——C进阶探幽
  19. 【C刷题记录】地月折纸——对数使用
  20. SAS/SATA/SSD/IDE硬盘介绍区别

热门文章

  1. ::selection
  2. HDU 2072(单词数)题解
  3. Centos7下使用ELK(Elasticsearch + Logstash + Kibana)搭建日志集中分析平台
  4. 主成分分析(PCA)原理详解 2016/12/17 · IT技术 · 主成分分析, 数学 分享到: 21 原文出处: 中科春哥 一、PCA简介 1. 相关背景 主成分分析(Principa
  5. instrumentation模拟很多activity的操作
  6. 4 开发MapReduce应用程序
  7. 8位二进制补码表示整数的最小值是什么,最大值是什么
  8. 浅谈https(创建、传输、断开)
  9. 【转】【天道酬勤】 腾讯、百度、网易游戏、华为Offer及笔经面经
  10. 快速数据库框架_快速学习新的数据科学概念的框架