欢迎来到天天文库
浏览记录
ID:56772069
大小:302.50 KB
页数:8页
时间:2020-07-08
《实验报告6_单件模式.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、云南大学软件学院实验报告序号:姓名:程聪学号:20151120082专业:软件工程日期:2017/12/7成绩:实验六单件模式的运用一、实验目的:单件模式是一种用于确保整个应用程序中只有一个类实例且这个实例所占资源在整个应用程序中是共享时的程序设计方法。在熟悉单件模式相关理论知识的基础上,使用单件模式实现一款应用程序框架。二、实验要求:使用单件模式实现一款应用程序框架,要求如下:1.使用同步getInstance()方法实现应用程序框架的运行环境组件,其中包含登录用户名、密码、级别等信息。2.应用程序框架采用模块化设计,模块控制组件使用急切实例化方法实现。该组件负责管
2、理在用模块并处理模块间的通信。3.为了避免模块的多次重复创建和释放,应用程序框架使用双重检查加锁的方法实现模块缓存组件。该组件缓存被释放的模块实例,当再次请求使用的时候,如果缓存了该模块,则返回该实例,否则就创建模块。4.以上三个组件使用不同的单例实现方法,在应用程序命名空间内都能够访问使用。1、设计并绘制该程序的类图;2、依照设计的类图使用Java语言编写代码,并实现该程序;3、除了核心的模式相关类实现外,提供测试环境,按照难度高低,分别是:a)控制台程序,Client硬编码初始化模式和测试环境,运行结果文本输出;b)控制台程序,Client初始化测试环境,并根据用
3、户输入运算,运行结果文本输出;c)设计并实现用户UI,Client初始化测试环境,并根据用户在UI控件上的输入运算,运行结果文本输出;三、实验内容:1.主要类图使用同步getInstance()方法的代码publicclassSingleton{publicstaticSingletonuniqueUser;staticStringinfo1;staticStringinfo2;staticintcount=0;Stringusername;publicstaticStringgetInfo1(){returninfo1;}publicstaticvoidsetInf
4、o1(Stringinfo1){Singleton.info1=info1;}publicstaticStringgetInfo2(){returninfo2;}publicstaticvoidsetInfo2(Stringinfo2){Singleton.info2=info2;}publicStringgetUsername(){returnusername;}publicvoidsetUsername(Stringusername){this.username=username;}publicStringgetPassword(){returnpassword;
5、}publicvoidsetPassword(Stringpassword){this.password=password;}publicintgetPrior(){returnprior;}publicvoidsetPrior(intprior){this.prior=prior;}Stringpassword;intprior;publicstaticsynchronizedSingletongetInstance(){if(uniqueUser==null){info1="没有该单例,现在创建";uniqueUser=newSingleton();}else{i
6、nfo1="";}info2="已有该单例,直接传值";returnuniqueUser;}privateSingleton(){count++;username="chengcong";password="20151120082";prior=1;}publicstaticintgetCount(){returncount;}publicstaticvoidsetCount(intcount){Singleton.count=count;}}急切实例化方法代码publicclassSingleton2{staticintcount=0;staticStringinf
7、o1;publicstaticStringgetInfo1(){returninfo1;}publicstaticvoidsetInfo1(Stringinfo1){Singleton2.info1=info1;}publicstaticintgetCount(){returncount;}publicstaticvoidsetCount(intcount){Singleton2.count=count;}privatestaticSingleton2uniqueInstance=newSingleton2();privateSingleton2()
此文档下载收益归作者所有