织梦网站如何生成伪静态,四川建设网官网安全员证书查询,网站建设专业团队,网页app开发培训班一、 实验目的与要求 1.练习使用单例模式。设计相关的模拟场景并进行实施#xff0c;验证模式特性#xff0c;掌握其优缺点。 2.实验结束后#xff0c;对相关内容进行总结。 二、实验内容 1.模式应用场景说明 在山区或者边远地区火车站往往只有一个窗口在买票#xff0c;但…一、 实验目的与要求 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 instancenull;private TicketWindowSingleton() {}public static TicketWindowSingleton getInstance()throws TicketWindowException{if(instancenull) {System.out.println(开辟一个售票窗口);instancenew 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 {ps1TicketWindowSingleton.getInstance();ps1.manageJobs();}catch(TicketWindowException e) {System.out.println(e.getMessage());}System.out.println(------------------------------);try {ps2TicketWindowSingleton.getInstance();ps2.manageJobs();}catch(TicketWindowException e) {System.out.println(e.getMessage());}}}4.结果及分析
三、实验总结 优点.在单例模式中活动的单例只有一个实例对单例类的所有实例化得到的都是相同的一个实例。这样就 防止其它对象对自己的实例化确保所有的对象都访问一个实例 缺点.不适用于变化的对象如果同一类型的对象总是要在不同的用例场景发生变化单例就会引起数据的错误不能保存彼此的状态。