




免费预览已结束,剩余4页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精选文档云南大学软件学院实 验 报 告序号: 姓名: 程聪 学号: 20151120082 专业: 软件工程 日期: 2017/12/7 成绩: 实验六 单件模式的运用一、实验目的:单件模式是一种用于确保整个应用程序中只有一个类实例且这个实例所占资源在整个应用程序中是共享时的程序设计方法。在熟悉单件模式相关理论知识的基础上,使用单件模式实现一款应用程序框架。二、实验要求:使用单件模式实现一款应用程序框架,要求如下:1. 使用同步getInstance()方法实现应用程序框架的运行环境组件,其中包含登录用户名、密码、级别等信息。2. 应用程序框架采用模块化设计,模块控制组件使用急切实例化方法实现。该组件负责管理在用模块并处理模块间的通信。3. 为了避免模块的多次重复创建和释放,应用程序框架使用双重检查加锁的方法实现模块缓存组件。该组件缓存被释放的模块实例,当再次请求使用的时候,如果缓存了该模块,则返回该实例,否则就创建模块。4. 以上三个组件使用不同的单例实现方法,在应用程序命名空间内都能够访问使用。1、 设计并绘制该程序的类图;2、 依照设计的类图使用Java语言编写代码,并实现该程序;3、 除了核心的模式相关类实现外,提供测试环境,按照难度高低,分别是:a) 控制台程序,Client硬编码初始化模式和测试环境,运行结果文本输出;b) 控制台程序,Client初始化测试环境,并根据用户输入运算,运行结果文本输出;c) 设计并实现用户UI,Client初始化测试环境,并根据用户在UI控件上的输入运算,运行结果文本输出;3、 实验内容:1. 主要类图使用同步getInstance()方法的代码public class Singleton public static Singleton uniqueUser;static String info1;static String info2;static int count=0;String username;public static String getInfo1() return info1;public static void setInfo1(String info1) S1 = info1;public static String getInfo2() return info2;public static void setInfo2(String info2) S2 = info2;public String getUsername() return username;public void setUsername(String username) this.username = username;public String getPassword() return password;public void setPassword(String password) this.password = password;public int getPrior() return prior;public void setPrior(int prior) this.prior = prior;String password ;int prior;public static synchronized Singleton getInstance() if (uniqueUser = null) info1=没有该单例,现在创建;uniqueUser = new Singleton();elseinfo1=; info2=已有该单例,直接传值;return uniqueUser;private Singleton() count+;username = chengcong; password = 20151120082; prior = 1;public static int getCount() return count;public static void setCount(int count) Singleton.count = count;急切实例化方法代码public class Singleton2static int count=0;static String info1;public static String getInfo1() return info1;public static void setInfo1(String info1) S1 = info1;public static int getCount() return count;public static void setCount(int count) Singleton2.count = count;private static Singleton2 uniqueInstance = new Singleton2();private Singleton2() count+;/ 在JVM加载该类时已经创建此唯一的单件实例public static Singleton2 getInstance() info1=单例已创建好,始终唯一;return uniqueInstance;双重检查加锁代码public class Singleton3 static String info1;static String info2;static String info3;static int count=0; public static int getCount() return count;public static void setCount(int count) Singleton3.count = count;private volatile static Singleton3 uniqueInstance = null; private Singleton3() count+; info3=20151120082; public static String getInfo1() return info1;public static void setInfo1(String info1) S1 = info1;public static String getInfo2() return info2;public static void setInfo2(String info2) S2 = info2;public static String getInfo3() return info3;public static void setInfo3(String info3) S3 = info3;public static Singleton3 getInstance() if (uniqueInstance = null) synchronized(Singleton3.class) if(uniqueInstance=null) info1=没有该单例,现在创建; uniqueInstance = new Singlet
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030二手奢侈品鉴定标准缺失问题与行业规范化路径
- 2025-2030中国青年公寓行业用户体验与服务设计优化研究报告
- 2025-2030中国青年公寓行业价值链重构与资本运作研究
- 2025-2030中国青年公寓绿色建筑标准与节能减排实施方案
- 2025-2030中国青年公寓智能安防系统应用与标准报告
- 2025-2030中国青年公寓市场细分领域投资机会与风险评估
- 2025-2030中国青年公寓室内隔音技术应用与居住体验
- 2025-2030中国青年公寓公共空间设计趋势与社交功能开发
- 2025-2030中国青年公寓二手交易市场发展与退出机制分析
- 乘法-乘火车(教学设计)-2024-2025学年三年级上册数学北师大版
- (人教版) 高一 单词表(默写版)
- 新概念第一册单词默写表
- 手术室无菌操作技术
- 颅脑损伤后的代谢变化和营养支持
- 介入科规培出科小结
- 人工智能在国际贸易中的应用
- 第2章 Windows 10操作系统
- 教研活动:幼儿园班级主题墙创设课件
- GB/T 42430-2023血液、尿液中乙醇、甲醇、正丙醇、丙酮、异丙醇和正丁醇检验
- 酒店住宿水单模板-可修改
- SF-三福的历史与文化 v2.0
评论
0/150
提交评论