下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本文格式为word版,下载可任意编辑观察者模式实验报告 软件设计与体系结构 实 实 验 报 告 课程名称 软件设计与体系结构 课程编号 0920216 试验项目名称 观看者模式案例 学号 班级 姓名 专业 同学所在学院 指导老师 试验室名称地点 试验时间 试验名称: 观看者模式案例 试验目的:观看者模式(observer pattern)是设计模式中行为模式的一种,它解决了上述具有一对多依靠关系的对象的重用问题。此模式的参加者分为两大类,一类是被观看的目标,另一类是观看该目标的观看者们。正由于该模式是基于"一对多'的关系,所以该模式一般是应用于由一个目标对象和 n 个观看者对
2、象组成(当然也可以扩展为有多个目标对象,但我们现在只争论前者)的场合。当目标对象的状态发生转变或做出某种行为时,正在观看该目标对象的观看者们将自动地、连锁地作出相应的响应行为。 通过本次试验了解观看者模式的原理。并能够运用观看者模式来进行编程。 试验内容 1 uml类图 2 程序的源代码 public class observerapp public static void main(string args) / create the subject and observers. concretesubject i = new concretesubject(ibm, 120.10); con
3、cretesubject j = new concretesubject(ibm, 120.10); nameobserver nameobs = new nameobserver(); priceobserver priceobs = new priceobserver(ibm,张三); priceobserver priceobss = new priceobserver(ibm,李四); / add those observers! i.addobserver(nameobs); i.addobserver(priceobs); j.addobserver(nameobs); j.add
4、observer(priceobss); / make changes to the subject. i.setname(张三); j.setname(李四); i.setprice(120.10); j.setprice(120.10); i.setprice(121.00); j.setprice(121.00); i.setprice(120.50); j.setprice(120.50); i.setprice(120.75); j.setprice(120.75); import java.util.observable; public class concretesubject
5、extends observable private string name; private double price; public concretesubject(string name, double price) = name; this.price = price; public string getnameone() return name; public double getprice() return price; public void setname(string name) = name; setchanged(); notify
6、observers(name); public void setprice(double price) this.price = price; setchanged(); notifyobservers(new float(price); import java.util.observer; import java.util.observable; public class nameobserver implements observer private string name; public nameobserver() name = null; public void update(obs
7、ervable obj, object arg) if (arg instanceof string) name = (string)arg; import java.util.observer; import java.util.observable; public class priceobserver implements observer private float price; private string name1; private string name2; public priceobserver(string namef,string names) price = 0; n
8、ame1 = namef; name2 = names; public void update(observable obj, object arg) if (arg instanceof float) price = (float)arg).floatvalue(); system.out.println(通知到股民 +name2+ +name1+最新股价为+price); 3试验截图 对该模式的熟悉 经过本次观看者模式的试验,通过自己动手编代码,是自己理解观看者模式机制,并且知道观看者模式有以下的优点:第一、观看者模式在被观看者和观看者之间建立一个抽象的耦合。被观看者角色所知道的只是一个详细观看者列表,每一个详细观看者都符合一个抽象观看者的接口。被观看者并不熟悉任何一个详细观看者,它只知道它们都有一个共同的接口。 由于被观看者和观看者没有紧密地耦合在一起,因此它们可以属于不同的抽象化层次。假如被观看者和观看者都被扔到一起,那么这个对象必定跨越抽象化和详细化层次。 其次、观看者模式支持广播通讯。被观看者
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新零售的最后一公里配送行业竞争分析及发展前景预测报告
- 农业绿色发展与农村环境保护行业发展全景调研与投资趋势预测研究报告
- 水产养殖废弃物处理行业市场突围建议书
- 多功能手术器械平台行业发展规模预测与投资潜力研究报告
- 企业社会公益责任审计行业五年发展洞察报告
- 无人驾驶汽车行业发展前景及投资风险预测分析报告
- 新兴市场跨境电商行业分析报告及未来三年行业发展报告
- 网络保险行业市场需求分析及未来三年行业预测报告
- 酒店并购与重组咨询行业经营分析报告
- 在线地理教育行业三年发展洞察报告
- 第二课《鲁迅与美术》(版画篇)课件-2023-2024学年学年浙美版初中美术七年级下册
- 长沙民政职业技术学院单招《语文》考试参考题库(含答案)
- 高中通用技术课堂的教学模式创新与实践策略研究
- 义务教育地理课程标准(2022版)考核检测试卷附答案
- 八上新版第17课 《中国工农红军长征》【初中历史教学PPT课件】
- 30题质量检验员岗位常见面试问题含HR问题考察点及参考回答
- 斑铜工艺发展史
- 北京版六年级上册分数乘除混合运算300题及答案
- 急性心肌梗死PBL教学查房
- 经济地理学第二章
- 思政课教案(通用10篇)
评论
0/150
提交评论