java 单例模式模拟打印机打印任务

来源:互联网 发布:sqlserver导出mdf 编辑:程序博客网 时间:2024/06/11 02:01


1.打印机报错处理类

 

package com.pattern06.singleton.sample03;public class PrintSpoolerException extends Exception {public PrintSpoolerException() {super();}public PrintSpoolerException(String message, Throwable cause) {super(message, cause);}public PrintSpoolerException(String message) {super(message);}public PrintSpoolerException(Throwable cause) {super(cause);}}


2.打印机类

 

package com.pattern06.singleton.sample03;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 static void stop() {instance = null;}public void manageJobs() {System.out.println("管理打印池任务!");}}


 

3.测试类

package com.pattern06.singleton.sample03;public class Client {public static void main(String[] args) throws PrintSpoolerException {PrintSpoolerSingleton p1,p2,p3;//创建打印池p1 = PrintSpoolerSingleton.getInstance();//使用打印池p1.manageJobs();//停止打印池PrintSpoolerSingleton.stop();p2 = PrintSpoolerSingleton.getInstance();p2.manageJobs();//没有把打印池停止就直接获取打印池会报错p3 =PrintSpoolerSingleton.getInstance(); }}

 

原创粉丝点击