




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 / 14观察者模式试验报告总结软件设计与体系结构实 验 报 告实验名称: 观察者模式案例洛阳师范学院信息技术学院软件实验报告专业:软件工程 课程: 设计模式学号: 101164028姓名: 陈亚平 班级:10 软件工程实 验 报 告课程名称: 实验项目: 姓 名: 专 业: 班 级: 学 号:2 / 14设计模式 观察者模式 李晨曦 计算机科学与技术 计算机10-1 1004010120计算机科学与技术学院实验教学中心2016 年 07 月 2 日实验项目名称: 观 察 者 模 式 一、实验目的熟悉并学会使用观察者模式编写程序。二、实验内容分别设计一个文档类和一个视图类,并将这两个类进行关联。文档类的对象在视图类的对象中显示出来,当文档对象发生变化时要及时通知视图类对象,以便视图类对象能及时将文档对象正确显示出来。(提示:用 java )3 / 14三、实验步骤按照要求编写程序四、实验结果五、程序代码#include #include #include #include using namespace std; class shitu;struct shitu_listener shitu_listener()virtual shitu_listener()virtual void shitu_clicked(shitu* btn)=0; ;class shitu private:vector listeners;4 / 14typedef vector:iterator bit_type; string name; public:string get_name()return name; shitu(string n):name(n) shitu()void add_shitu_listener(shitu_listener* bls) _back(bls); void remove_shitu_listener(shitu_listener* bls) (remove(),(),bls), (); void run()for(bit_type it=();it!=();+it) shitu_listener* bls = *it; bls-shitu_clicked(this); ;class wendang:public shitu_listener private: 5 / 14int i; public:wendang(int ii):i(ii)void shitu_clicked(shitu* btn)cout coutget_name() ;int main()shitu* btn = new shitu(“视图内容”); shitu_listener* bls1 = new wendang(1); shitu_listener* bls2 = new wendang(2); shitu_listener* bls3= new wendang(3); btn-add_shitu_listener(bls1); btn-add_shitu_listener(bls2); btn-add_shitu_listener(bls3); btn-run();btn-remove_shitu_listener(bls1); delete btn; delete bls1; delete bls2; return 0; 实验名称 行为型模式-36 / 14一、实验目的加深对行为型软件设计模式的理解,学习在软件开发中使用观察者模式模式和中介者模式。二、实验环境: Windows 10 eclipse 运行环境 三、实验内容:1、某在线股票软件需要提供如下功能:当股票购买者所购买的的某只股票价格变化幅度达成到 5%时,系统将自动发送通知给购买过的该股票的股民。现使用观察者模式设计该系统,绘制类图并编程模拟实现 2、用户可以通过“升高” , “降低”按钮或右边的温度调节条来调节温度,也可以直接通过文本框来设置温度,摄氏温度和华氏温度将同时改变,且温度调节条也将一起被调节。使用中介者模式设计该系统,绘制类图并模拟实现。四、实验过程 1、观察者模式2、中介者模式7 / 14实 验 报 告课程名称实验项目 观察者模式与装饰模式的应用实验仪器 PC 个人终端系 别 计算机学院专 业 软件工程班级/学号 软工 1302/2016011342学生姓名 阮翀实验日期 2016-10-12成 绩指导教师 张志华8 / 14实验二 观察者模式与装饰模式的应用一、实验目的通过该实验,理解观察者模式和装饰模式的意图、结构,在软件开发中使用这些模式并进行功能验证。二、实验内容1. 猫、狗与老鼠。假设猫是老鼠和狗的观察目标,老鼠和狗是观察者,猫叫老鼠跑,狗也跟着叫,使用观察者模式描述该过程。2. 我跟妈妈说:“妈妈,我和妹妹在院子里玩。饭做好了叫我们一声。 ” 请用观察者模式设计一个模拟系统。3. 采用装饰模式为图书馆中的项目增加“可借”功能。使用 Java 语言设计一个模拟系统。4. 自定义 JButton。开发人员设计用户接口时,通常需要更多有特色的控件,Decorator 模式就提供了一个方法去创造或修改现有的 UI 控件。使用装饰模式实现一个带有对角9 / 14线的按钮。三、实验步骤与要求1 对于以上题目要认真分析和理解题意,在观察者模式和装饰模式题目中各选 1 个进行编程,程序中要求使用相应的模式。2 上机录入,使用 JDK 编译器调试、运行、验证程序。3 请指导教师审查程序和运行结果并评定成绩;4 撰写并上交实验报告。四、实验原理:在许多设计中,经常涉及到多个对象都对一个特殊对象中的数据变化感兴趣,而且这多个对象都希望跟踪那个特殊对象中的数据变化,此时可以采用观察者模式。观察者模式意图:“定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都得到通知并被自动更新。 ”10 / 14观察者模式的 UML 类图:装饰模式是动态地扩展一个对象的功能,而不需要改变原始类代码的一种成熟模式。装饰模式意图:“动态地给对象添加一些额外的职责。就功能来说装饰模式相比生成子类更为灵活。 ”装饰模式的 UML 类图:五、 上机报告内容1、 班级、学号、姓名、实验完成日期;2、 实验题目;3、 设计方案:给出你的设计方案,包括结构类图及相关说明;4、 源代码:设计方案中各个类和接口的源代码,包括测试主类的源代码.11 / 145、 测试数据及运行结果6、 总结:1) 运用设计模式总结:对所运用的设计模式的名称,分类,意图,结构,角色作用的总结,所运用的面向对象设计原则。2) 选择一个题目进行说明:如果不使用观察者模式和装饰模式,你能想到其他方法解决问题吗,简要描述你的方案,并和采用命令模式的方案做简单比较。3) 本次实验遇到的问题、如何解决的;本次实验的经验、体会、改进设想等。12 / 14六、实验成绩考核方法实验成绩由出勤、实验完成情况以及实验报告综合评定。考核成绩比例分配:出勤占 15%、实验完成情况占 50%、实验报告占 35%七、上机安排本实验共需 2 个学时。观察者模式public interface Subject public void addObserver(Observer o); public void deleteObserver(Observer o); public void notifyObservers(); public interface Observer 13 / 14public void SayHi(String heardMess); public class Mouse implements Observer public Subject subject;public class Dog implements Observer public void SayHi(String heardMess) (“我是观察者狗,犬吠”); public Dog(Subject subject) = subject; (this); public Subject subject; public Mouse(Subject subject) public void SayHi(String heardMess) (“我是观察者老鼠,吱吱吱,我跑了!=。=“); = subject; (this);import ;public class Cat implements Subject 14 / 14String mess; boolean changed; ArrayList animalsList; public Cat() public void addObserver(Observer o) Override public void deleteObserver(Observer o) Override public void notifyObservers() for (int i = 0; i (); mess = “Hi”; changed = false;public class Application public st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国钢结构建筑在机场航站楼中的设计创新趋势
- 2026届福建省厦门市思明区湖滨中学物理八年级第一学期期末调研模拟试题含解析
- 山东省济宁海达行知学校2026届物理八年级第一学期期末质量跟踪监视模拟试题含解析
- 数字空管塔在航空维修质量管理中的应用报告
- 高值品押运队物流保险业务发展前景分析报告
- 元宇宙医疗平台运营成本控制策略研究报告
- 2026届浙江省台州市椒江区书生中学物理八上期末经典试题含解析
- 2026届山东省青大附中物理八年级第一学期期末达标测试试题含解析
- 2026届广东省深圳市南山外国语学校八年级物理第一学期期末经典试题含解析
- 江苏省淮安市南陈集中学2026届八年级物理第一学期期末复习检测模拟试题含解析
- 成人反流误吸高危人群全身麻醉管理专家共识(2025版)解读
- 初二体育课程教学计划及实施
- 高校物业现场管理方案(3篇)
- 浙江省金华市婺城区2024-2025学年七年级上学期语文期中考试试卷(含答案)
- 2025年10月自考00227公司法真题及答案
- 2025年广东二级造价师土建工程考试真题及答案
- 汽轮机油品基础知识培训
- 2026届高三地理复习策略+课件
- FZ∕T81012-2024机织围巾、披肩
- 作战指挥体制说课课件
- 产业链协同平台设计-洞察及研究
评论
0/150
提交评论