java 模拟简单打印机功能_java 单例模式模拟打印机打印任务

本文通过Java代码展示了如何使用单例模式实现一个简单的打印机功能。包括打印机报错处理类`PrintSpoolerException`,打印机类`PrintSpoolerSingleton`,以及测试类`Client`。`PrintSpoolerSingleton`的`getInstance()`方法确保了只有一个实例存在,并在已有实例时抛出异常。测试类中展示了如何创建、使用和停止打印池。
摘要由CSDN通过智能技术生成

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();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值