设计模式-单例模式的应用
发布日期:2021-06-30 17:44:39
浏览次数:3
分类:技术文章
本文共 2057 字,大约阅读时间需要 6 分钟。
单例模式的应用
在操作系统中,打印池(Print Spooler)是一个用于管理打印任务的应用程序,通过打印池用户可以删除、中止或者改变打印任务的优先级,在一个系统中只允许运行一个打印池对象,如果重复创建打印池则抛出异常。现使用单例模式来模拟实现打印池的设计。用JAVA语言实现(C#控制台应用程序实现)该模式。绘制该模式的UML图。
【模式UML图】
【模式代码(JAVA语言实现)】 // PrintSpoolerSingleton.java:package sdp.sy_4.singletonpattern;public class PrintSpoolerSingleton { private static PrintSpoolerSingleton instance; private String name; private PrintSpoolerSingleton(String name) { this.name = name; } public static PrintSpoolerSingleton getInstance(String name) { if( instance == null && !name.equals(null) ) { instance = new PrintSpoolerSingleton(name); } return instance; } public void manageJobs() { System.out.println(name+"..."); }}
// PrintSpoolerMain.java:
package sdp.sy_4.singletonpattern;import java.util.Scanner;public class PrintSpoolerMain { private static Scanner sc; public static void main(String[] args) { System.out.println("打印..."); try { System.out.println("选择操作:"); System.out.println(" D ――Delete"); //删除任务 System.out.println(" S ――Suspension"); //中止任务 System.out.println(" C ――Change priorities"); //改变任务优先级 System.out.println(" E ――Exit"); //退出 sc = new Scanner(System.in); while(true) { switch (sc.next()) { case "D": PrintSpoolerSingleton DeletePrint = PrintSpoolerSingleton.getInstance("Delete"); DeletePrint.manageJobs(); break; case "S": PrintSpoolerSingleton SuspensionPrint = PrintSpoolerSingleton.getInstance("Suspension"); SuspensionPrint.manageJobs(); break; case "C": PrintSpoolerSingleton ChangePrioritiesPrint = PrintSpoolerSingleton.getInstance("Change priorities"); ChangePrioritiesPrint.manageJobs(); break; case "E": System.exit(1); break; default: break; } } } catch (Exception e) { new PrintSpoolerException(e.getMessage()); } }}
// PrintSpoolerException.java:
package sdp.sy_4.singletonpattern;public class PrintSpoolerException { public PrintSpoolerException(String message) { System.out.println(message); }}
【运行截图】
转载地址:https://lexiaoyuan.blog.csdn.net/article/details/89074108 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月12日 08时42分40秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【NLP学习笔记】NLP基础知识框架图
2019-04-30
【工具与环境】Windows下安装Sublime Text 3
2019-04-30
【工具与环境】Excel中批量插入行
2019-04-30
【学习笔记】对vanilla的一些个人理解
2019-04-30
“学硕” VS “专硕”
2019-04-30
【NLP学习笔记】知识图谱阅读笔记及其心得
2019-04-30
【工具使用】新版CSDN-markdown编辑器使用指南
2019-04-30
《知识图谱》阅读笔记(六)
2019-04-30
【NLP学习笔记】中文分词(Word Segmentation,WS)
2019-04-30
【NLP学习笔记】词性标注(Part-of-speech Tagging, POS)
2019-04-30
《知识图谱》阅读笔记(七)
2019-04-30
《知识图谱》阅读笔记(九)
2019-04-30
【超越白皮书7】你需要知道关于ETH2.0的几个事实
2019-04-30
超越白皮书8:穿云而过的闪电网络
2019-04-30
AMM做市无常损失对冲分析系列(一)—— 损益及期权对冲模型构建
2019-04-30
JS中document对象和window对象有什么区别
2019-04-30
【python练习题】遍历1
2019-04-30
【matlab】显示图片且下方显示文字
2019-04-30
关于greater<int>以及类模板的一些理解
2019-04-30