文档介绍:观察者模式实验报告(共10篇) 软件设计与体系结构实验报告实验名称:观察者模式案例实验报告课程名称:实验项目:姓名:专业:班级:学号: 设计模式观察者模式李晨曦计算机科学与技术计算机10- 计算机科学与技术学院实验教学中心 XX年07月2日实验项目名称:观察者模式一、实验目的熟悉并学会使用观察者模式编写程序。二、实验内容分别设计一个文档类和一个视图类,并将这两个类进行关联。文档类的对象在视图类的对象中显示出来,当文档对象发生变化时要及时通知视图类对象,以便视图类对象能及时将文档对象正确显示出来。(提示:用java) 三、实验步骤按照要求编写程序四、实验结果五、程序代码#include#include#include#includeusingnamespacestd;classshitu; structshitu_listener{shitu_listener(){} virtual~shitu_listener(){} virtualvoidshitu_clicked(shitu*btn)=0;}; classshitu{private: vectorlisteners; typedefvector::iteratorbit_type;stringname;public: stringget_name(){returnname;};shitu(stringn):name(n){}~shitu(){} voidadd_shitu_listener(shitu_listener*bls){_back(bls);} voidremove_shitu_listener(shitu_listener*bls){(remove( (),(),bls),());} voidrun(){ for(bit_typeit=();it!=();++it){shitu_listener*bls=*it;bls->shitu_clicked(this);}}}; classwendang:publicshitu_listener{private:inti;public: wendang(intii):i(ii){} voidshitu_clicked(shitu*btn){ coutget_name()add_shitu_listener(bls1);btn->add_shitu_listener(bls2);btn->add_shitu_listener(bls3);btn->run(); btn->remove_shitu_listener(bls1);deletebtn;deletebls1;deletebls2;return0;} 洛阳师范学院信息技术学院软件实验报告专业:软件工程课程:设计模式学号: 姓名:陈亚平班级:10软件工程实验报告一、设计问题 Observer模式的应用。股票的价格随着时间会在一定范围内波动,对于每个股票,股票分析软件提供多种指标分析,如分时图,K线图等,以辅助投资者进行投资决策。分时图是将每分钟的股票价格连起来的折线图;K线图反应每天股票的开盘价、收盘价、最低价和最高价:根据情况,也可能需要增加其他类型的指标分析报告。请选用适当的设计模式,编写一个股票行情分析软件,随着时间的推移和股票价格的变动,实现各种指标的动态更新。二、问题分析与模式选用应当设计一个窗口类SharesWin用来绘图,另外设计一个类SharesThread产生数据。SharesWin包含分别绘制分时图和K线图的部件TimePanel和KLinePanel,这两个类作为观察者。SharesThread作为主题,这样就使用了观察者模式。观察者模式的UML类图: 三、设计方案类图: 四、运行结果及效果分析五、实现源代码青岛理工大学课程实验报告 1 2 classstudent { privatestringname; privatestringsex; privateintage; publicstudent(stringname,stringsex,intage) { =name; =sex; =age; } publicstringName { get{returnname;} set{name=value;} } publicstringSex { get{returnsex;} set{sex=value;} } publicintAge { get{returnage;} set{age=value;} } } } : usingSystem; using; using; using; using; using; namespaceshiyan_6 { abstractclassdata { 3 protectedListstudentList