02单例模式.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
02单例模式

信息与管理科学学院计算机科学系实验报告课程名称: 软件开发生命周期与建模 实验名称: 【实验2】单例模式(身份证号申请) 姓 名: 郭鹏博 韩浩强 郭帅 邓昊 付赟昊 石峰 组号:3 班级:2014级计应1班指导教师: 张 浩实 验 室: 兰亭机房2日 期: 2016年05月11日一、实验目的 单例模式(Singleton Pattern)确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式的要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。通过单例模式实验,理解掌握单例模式是如何创建唯一实例、如何判断是唯一实例、如何通过公共接口对外提供单一实例。二、实验环境一台PC机,所需软件Win2003/XP、UML工具(Rose/Visio/EclipseUML/ StartUML/)、Eclipse/MyEclipse、JDK6.0等。三、实验内容 身份证号码系统:在现实生活中,居民身份证号码具有唯一性,同一个人不允许有多个身份证号码,第一次申请身份证时将给居民分配一个身份证号码,如果之后因为遗失等原因补办时,还是使用原来的身份证号码,不会产生新的号码。现使用单例模式模拟该场景。四、实验操作过程 1.分析身份证号码系统是如何保证在外部不能进行类的实例化类的构造方法是私有的,外部类不能访问2.分析身份证号码系统是如何在类内部自行创建该实例 在第一次被引用时将自己实例化 3.分析身份证号码系统是如何对外部(向整个系统)提供该实例 通过一个静态方法,该方法还回一个实例4.画出身份证号码系统的总体类图总结抽象出一般的单例模式类结构图,并进行角色说明说明:该单例类为饿汉式单例模式,该类会在被加载时将静态变量instance初始化,从而调用构造方法将类实例化。6.饿汉式单例模式和懒汉式单例模式的比较相同点:属性和构造方法都是私有的,都有一个向外部提供实例的公有方法。不同点:饿汉式单例模式是在类被初始化时创建类的实例,而懒汉式单例模式的单例类是在第一次被引用是将自己实例化。从资源利用效率看,饿汉式单例模式比懒汉式单例模式好;从速度和应时间看,懒汉式单例模式比饿汉式单例模式好。核心代码与实验结果核心类代码:public class IdentityCardNo {private static IdentityCardNo ls=null;private String no;private IdentityCardNo() {} public static IdentityCardNo getInstance(){if(ls==null){ls=new IdentityCardNo();}return ls;} public void setIdentityCardNo(String no){this.no=no;}public String getIdentityCardNo(){return no;}}测试类代码:import javax.swing.JOptionPane;public class Test {public static void main(String[] args) { IdentityCardNo identityCardNo1,identityCardNo2; identityCardNo1=IdentityCardNo.getInstance(); identityCardNo1.setIdentityCardNo(1234); identityCardNo2=IdentityCardNo.getInstance(); identityCardNo2.setIdentityCardNo(5678); JOptionPane.showMessageDialog(null, identityCardNo1. equals(identityCardNo2)+\n14级计应1班第3组:郭鹏博、 + 韩浩强、付赟浩、郭帅、邓昊、石峰); }}实验结果界面:六、心得体会分工:组长进行任务分配和带头实施实验任务及对组员进行辅导、评分,副组长配合组长完成相关工作并对组长评分,组员分别完成各个实验任务。组员完成情况:最终均完成了实验任务。已解决的问题:单例模式的原理及实现代码。还存在的问题:在实际项目开发中,还不能熟练的应用。七、组内打分组号姓名学号班级作业成绩(百分制)3郭鹏博141020801314级计应1班95韩浩强141020801514级计应1班93邓昊141020801114级计应1班90付赟昊141020801214级计应1班90郭帅141020801414级计应1班90石峰

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档