观察者模式实验报告

观察者模式实验报告

ID:78330840

大小:18.71 KB

页数:5页

时间:2022-02-01

观察者模式实验报告_第1页
观察者模式实验报告_第2页
观察者模式实验报告_第3页
观察者模式实验报告_第4页
观察者模式实验报告_第5页
资源描述:

《观察者模式实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、本文格式为Word版,下载可任意编辑观察者模式实验报告软件设计与体系结构实实验报告课程名称软件设计与体系结构课程编号0920216试验项目名称观看者模式案例学号班级姓名专业同学所在学院指导老师试验室名称地点试验时间试验名称:观看者模式案例试验目的:观看者模式(ObserverPattern)是设计模式中行为模式的一种,它解决了上述具有一对多依靠关系的对象的重用问题。此模式的参加者分为两大类,一类是被观看的目标,另一类是观看该目标的观看者们。正由于该模式是基于"一对多'的关系,所以该模式一般是应用于由一个目标对象和N个观看者对象组成(当然也可以扩展为有多个目标对象,但我们现在只争论前者)的场合

2、。当目标对象的状态发生转变或做出某种行为时,正在观看该目标对象的观看者们将自动地、连锁地作出相应的响应行为。通过本次试验了解观看者模式的原理。并能够运用观看者模式来进行编程。试验内容第5页共5页本文格式为Word版,下载可任意编辑1UML类图2程序的源代码publicclassObserverApp{publicstaticvoidmain(Stringargs[]){//CreatetheSubjectandObservers.ConcreteSubjecti=newConcreteSubject(IBM,120.10);ConcreteSubjectj=newConcreteSubjec

3、t(IBM,120.10);NameObservernameObs=newNameObserver();PriceObserverpriceObs=newPriceObserver(IBM,张三);PriceObserverpriceObss=newPriceObserver(IBM,李四);//AddthoseObservers!i.addObserver(nameObs);i.addObserver(priceObs);j.addObserver(nameObs);j.addObserver(priceObss);//MakechangestotheSubject.i.setName(张

4、三);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);}}importjava.util.Observable;publicclass第5页共5页本文格式为Word版,下载可任意编辑ConcreteSubjectextendsObservable{privateStringname;privatedoublepr

5、ice;publicConcreteSubject(Stringname,doubleprice){this.name=name;this.price=price;}publicStringgetNameone(){returnname;}publicdoublegetPrice(){returnprice;}publicvoidsetName(Stringname){this.name=name;setChanged();notifyObservers(name);}publicvoidsetPrice(doubleprice){this.price=price;setChanged();

6、notifyObservers(newFloat(price));}}importjava.util.Observer;importjava.util.Observable;publicclassNameObserverimplementsObserver{privateStringname;publicNameObserver(){name=null;}publicvoidupdate(Observableobj,Objectarg){if(arginstanceofString){第5页共5页本文格式为Word版,下载可任意编辑name=(String)arg;}}}importjava

7、.util.Observer;importjava.util.Observable;publicclassPriceObserverimplementsObserver{privatefloatprice;privateStringname1;privateStringname2;publicPriceObserver(Stringnamef,Stringnames){price=0;name1=namef;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。