创建型模式——单例模式

一、 实验目的与要求
1.练习使用单例模式。设计相关的模拟场景并进行实施,验证模式特性,掌握其优缺点。
2.实验结束后,对相关内容进行总结。
二、实验内容
1.模式应用场景说明
在山区或者边远地区火车站往往只有一个窗口在买票,但是可以拍两个队,相互交替进行车票的打印工作。一个人自能买到一张票,并且只可以安排队顺序进行购买。
2.应用场景类图
在这里插入图片描述

3.实现代码与解释
3.1 自定义异常类TicketWindowException

package 单例模式;public class TicketWindowException extends Exception {public TicketWindowException(String message) {super(message);}
}

3.2单例类 TicketWindowSingleton 排队买票

package 单例模式;public class TicketWindowSingleton {private static TicketWindowSingleton instance=null;private TicketWindowSingleton() {}public static TicketWindowSingleton getInstance()throws TicketWindowException{if(instance==null) {System.out.println("开辟一个售票窗口");instance=new TicketWindowSingleton();}else {throw new TicketWindowException("售票窗口正在工作中");}return instance;}public void manageJobs() {System.out.println("管理排队任务");}}

3.3客户端测试类 Client

package 单例模式;public class Client {public static void main(String a[]) {TicketWindowSingleton ps1,ps2;try {ps1=TicketWindowSingleton.getInstance();ps1.manageJobs();}catch(TicketWindowException e) {System.out.println(e.getMessage());}System.out.println("------------------------------");try {ps2=TicketWindowSingleton.getInstance();ps2.manageJobs();}catch(TicketWindowException e) {System.out.println(e.getMessage());}}}

4.结果及分析
在这里插入图片描述

三、实验总结
优点:.在单例模式中,活动的单例只有一个实例,对单例类的所有实例化得到的都是相同的一个实例。这样就 防止其它对象对自己的实例化,确保所有的对象都访问一个实例
缺点:.不适用于变化的对象,如果同一类型的对象总是要在不同的用例场景发生变化,单例就会引起数据的错误,不能保存彼此的状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/309380.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sql Server之旅——终点站 nolock引发的三级事件的一些思考

曾今有件事情让我记忆犹新,那年刚来携程不久,马上就被安排写一个接口,供企鹅公司调用他们员工的差旅信息,然后我就三下五除二的给写好了,上线之后,大概过了一个月。。。DBA那边报告数据库出现大量锁超时&am…

创建型模式——原型模式

一、 实验目的与要求 1.练习使用单一模式。设计相关的模拟场景并进行实施,验证模式特性,掌握其优缺点。 2.实验结束后,对相关内容进行总结。 二、实验内容 1.模式应用场景说明 原型模式:在需要一个类的大量对象的时候,…

现在就是.Net最好的时代!我赞成,谁反对?

2020年.NET Core逆袭冲榜,多榜直接冠军!Build2020,发布多款产品赋能.NET开发者!截止5月,腾讯,阿里,特斯拉等大厂都在招聘.NET!这些征兆,都预示着.NET的春天即将到来&…

如何给Blazor.Server加个API鉴权?

(Ant Design of Blazor为努力而生)书接上文,上次我们说到了最终选用Blazor.Server来实现了我们的MVP项目,额其实就是博客的增删改查,不过运行还是很爽的,不过是一个小demo,脑子里一直有个声音&a…

结构型模式——桥接模式

一、 实验目的与要求 1.练习使用桥接模式。设计相关的模拟场景并进行实施,验证模式特性,掌握其优缺点。 2.实验结束后,对相关内容进行总结。 二、实验内容 1.模式应用场景说明 相信大家都看过罗老师买奶茶的情节,现实生活中也是一…

TypeScript+vue使用与迁移经验总结

源宝导读:ERP平台的前端底层使用了Vue作为组件的基础架构,而使用了TypeScript语言进行组件的封装与开发。本文将简要介绍平台在使用TypeScript和Vue框架进行老功能重构时的经验总结。一、背景下面主要探讨是以下三个方面:目前项目中使用到的v…

结构型模式——适配器模式

一、 实验目的与要求 1.练习使用适配器模式。设计相关的模拟场景并进行实施,验证模式特性,掌握其优缺点。 2.实验结束后,对相关内容进行总结。 二、实验内容 1.模式应用场景说明 现在喜欢上网的年轻人越来越多,而家里面的电脑满足…

[号外] Blazor wasm 其实也挺快!

之前第一篇的时候,因为没有用任意配置,导致wasm加载很慢,我就感觉不会是这样的,为了不误导小盆友,所以还是趁着周末研究了一波,做了相关的调整,经过测试,速度基本可观了,…

WinUI 3 试玩报告

1. 什么是 WinUI 3#在微软 Build 2020 开发者大会上,WinUI 团队宣布可公开预览的 WinUI 3 Preview 1,它让开发人员可以在 Win32 中使用 WinUI。WinUI 3 Preview 1 包含新的 VisualStudio 项目模板,可以创建面向 .NET 5 的 C# 和 C/Win32 项目…

记一次EF Core连接MySql、Oracle

点击上方“Dotnet9”添加关注哦上上个月写的一篇文章,今天有同事问我使用EF Core连接MySql和Oracel的问题,我把这篇文章直接甩给了他。下面是正文:这几天研究了EF Core对MySql、Oracle的操作,包括连接、简单查询等,操作…

基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(五)

系列文章使用 abp cli 搭建项目给项目瘦身,让它跑起来完善与美化,Swagger登场数据访问和代码优先自定义仓储之增删改查统一规范API,包装返回模型再说Swagger,分组、描述、小绿锁接入GitHub,用JWT保护你的API异常处理和…

Codeforces Round #719 (Div. 3)/ Codeforces Round #720 (Div. 2)

A. Do Not Be Distracted! 题意: 一件事情一但开始,只能做完才能做别的事,当出现一件事不连续出现时,教师会怀疑 题目: Polycarp has 26 tasks. Each task is designated by a capital letter of the Latin alphab…

dotNET Core 3.X 使用 Autofac 来增强依赖注入

在上一篇《dotNET Core 3.X 依赖注入》中简单介绍了 dotNET Core 框架本身的依赖注入功能,大部分情况下使用框架的依赖注入功能就可以满足了,在一些特殊场景下,我们就需要引入第三方的注入框架。为什么要使用 Autofac?如果您在之前…

[JS-DOM]DOM概述

DOM: * 概念: Document Object Model 文档对象模型* 将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作* W3C DOM 标准被分为 3 个不同的部分:* 核心 DOM - 针对任何结构…

基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(一)

系列文章使用 abp cli 搭建项目给项目瘦身,让它跑起来完善与美化,Swagger登场数据访问和代码优先自定义仓储之增删改查统一规范API,包装返回模型再说Swagger,分组、描述、小绿锁接入GitHub,用JWT保护你的API异常处理和…

2021年度训练联盟热身训练赛第一场 H题On Average They‘re Purple(BFS)

题意: 给你一些联通关系,问Bob先选择一些路径(1~n)联通,Alice在路径上染色,Bob的目的是选择一些路径使得染色变化最小,对于Alice来说,需要使得在Bob选择的(1−n1-n1−n&…

使用请求头认证来测试需要授权的 API 接口

使用请求头认证来测试需要授权的 API 接口Intro有一些需要认证授权的接口在写测试用例的时候一般会先获取一个 token,然后再去调用接口,其实这样做的话很不灵活,一方面是存在着一定的安全性问题,获取 token 可能会有一些用户名密码…

双端队列 BFS + Chamber of Secrets CodeForces - 173B

题意: 一个 nmn\times mnm 的图,现在有一束激光从左上角往右边射出,每遇到 ‘#’,你可以选择光线往四个方向射出,或者什么都不做,问最少需要多少个 ‘#’ 往四个方向射出才能使光线在第 n 行往右边射出。 …

程序员过关斩将--作为一个架构师,我是不是应该有很多职责?

点击上方“蓝字”关注我们领取架构书籍每一个程序员都有一个架构梦。上面其实本质上是一句富有事实哲理的废话,要不然也不会有这么多人关注你的公众号。这些年随着“企业数字化”转型的口号,一大批企业奔跑在转型的路上,希望领先一步对手将企…

Excel使用技巧,补充中。。。

Excel表怎么把名字按字母排序 然后后面的数据也跟着变动 1、首先在excel表格的A列单元格中输入字母,选中需要排序的A列和B列单元格。 2、然后点击工具栏“数据”中的“排序”。 3、在弹出的对话框中的“次序”下拉框中选择“自定义序列”。 4、然后在弹出的对话…