吴东洋第一次试验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
吴东洋第一次试验报告

信息工程学院 试 验 报 告 课程名称: 实验名称: 实验类型:验证性□综合性□设计性 实验室名称: 班级: 学号: 姓名: 成绩: 实验日期: 报告类型:实验报告√ 预习报告□ 一、实验名称 设计模式应用 二、实验目的 1、学习使用UML和面向对象编程语言设计与实现代理模式、迭代器模式等。 2、理解每一种设计模式的设计动机,掌握模式结构。 3、学习如何使用面向对象语言实现这些模式,并分析其运行结果。 三、实验内容 使用UML和面向对象编程语言设计与实现代理模式、迭代器模式等,包括根据实例绘制模式类图、编写模式实例实现代码,运行并测试模式实例代码。 四、实验环境 实验地点:格物楼B402 软件环境:Myeclipse10 操作系统:windows7/8 五、实验要求 1.使用UML正确绘制代理模式、迭代器模式等实例的类图 2.使用面向对象语言实现代理模式、迭代器模式等实例,代码运行正确无误。 3.实验前写好预习报告,做完实验后写出实验报告 六.实验步骤 1、理解代理模式、迭代器模式含义 2、利用建模工具Rose等,使用UML绘制代理模式、迭代器模式的类图 3、使用面向对象语言实现代理模式、迭代器模式 4、运行并测试模式实例代码,观察、分析实验结果 七、实验原理 代理模式:给某个对象提供一个代理对象,并由代理对象控制对于原对象的访问,即客户不直接操控原对象,而是通过代理对象间接地操控原对象。 迭代器模式:提供一种方法顺序地访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。 八、方案设计 代理模式: 代理模式的角色分四种: 主题接口: 即代理类的所实现的行为接口。 目标对象: 也就是被代理的对象。 代理对象: 用来封装真是主题类的代理类。 客户端? 2、迭代器模式: 1.抽取对象:聚合对象,这里是公交车,是一个具体的,当然集合对象不限于公交车,所以可以抽取一个抽象类: 聚合抽象类:Aggragate 具体聚合类:Bus 聚合对象中的乘客:Passenger 迭代器对象:在这个需求中,迭代器是售票员,同样也抽取一个抽象的迭代器,因为 迭代器的迭代顺序可以不一致: 抽象迭代器:Iterator 具体的迭代器:Conductor 2.类的职责:Aggregate提供一个创建迭代器的行为,在Bus中有Passenger,所以 要提供当前乘客的数量的行为,还有上下车的行为,即加或减乘客 Aggregate:iterator(); Bus:removePassenger();addPassenger();count();getPassenger(int index); Iterator:既然是迭代器,就会提供如下行为: first();next();hasNext();current(); 类的交互:在具体的聚合类Bus中显然装的是乘客,然而迭代器要迭代聚合对象的 元素,即必须依赖了聚合对象。 九、程序类图与试验代码 代理模式: package com; //定义一个主题接口 public interface Subject { public void Hello(); public void GoodBye(); } package com; //定义一个目标类, 并实现主题接口 public class RealSubject implements Subject { public void Hello() { System.out.println(你好); } public void GoodBye() { System.out.println(再见); } } package com; //定义一个代理类, 来代理目标对象 public class StaticProxy implements Subject { private RealSubject realSubject = null; public StaticProxy() {} public void Hello() { if(realSubject == null) { realSubject = new RealSubject(); } realSubject.Hello(); } public void GoodBye() { if(realSubject == null) { realSubject = new RealSubject();

文档评论(0)

kaiss + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档