观察者模式_简单例子

观察者模式_简单例子

ID:42844862

大小:98.50 KB

页数:11页

时间:2019-09-23

观察者模式_简单例子_第1页
观察者模式_简单例子_第2页
观察者模式_简单例子_第3页
观察者模式_简单例子_第4页
观察者模式_简单例子_第5页
资源描述:

《观察者模式_简单例子》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验五、观测者模式(4学时)【实验目的】1、了解观测者模式的应用场景、目的和解决问题的方法。2、掌握观测者模式的结构、各角色之间的协作过程和代码实现。3、了解观测者模式的应用。【实验性质】验证性实验【实验内容与步骤】1、用Java或C#语言实现观测者模式的结构,并用代码说明客户端程序如何应用观测者模式。观察者publicinterfaceObserver{publicvoidupdate();}具体观察者publicclassConcreteObserverimplementsObserver{priva

2、teSubjectrnConcreteSubject;publicConcreteObserver(SubjectmConcreteSubject){this.mConereteSubject二mConcreteSubject;}publicvoidupdate(){System,out.printIn(,z得到信息:/z+mConcreteSubject.getInformation());}}主题publicinterfaceSubject{publicvoidattach(Observero);pu

3、blicvoiddetach(Observero);publicStringgetlnformationO;publicvoidnotifyObservers();publicStringsetlnformation(Strings);}具体主题importjava.util.ArrayList;publicclassConcreteSubjectimplementsSubject{publicArrayListmObserver;privateStringInfonneition=〃

4、";privateObjectmState;publicConcreteSubject(){mObserver二newArrayList();publicObjectgetState(){returninState;publicvoidsetState(Objectval){mState=val;publicvoidattach(Observero){辻(o!=null)mObserver.add(o);publicvoiddetach(Observero){if(mObserver.

5、contains(o))mObserver.remove(o);}publicStringsetlnformation(Strings){Information's;returns;}publicStringgetlnfornidtion(){returnInformation;}publicvoidnotifyObservers(){for(inti=0;i

6、assApplication{publicstaticvoidmain(String[]args){Subjects=newConcreteSubject();Observerol=newConcreteObserver(s);Observero2=newConereteObserver(s);s.attach(o2);s・attach(ol);s.setlnfonnation(〃你好");s.notifyObservers();}2、请用观测者模式实现一个汽车驾驶室仪表系统,当汽车改变速度、改变方向时实

7、时显示汽车的速度、方向、指示灯等信息。观察者速度表packagedriver;importjava.util.Observable;importjava.util.Observer;importjava.awt•*;importjava.awt.event.*;importjavax.swing.*;publicclassSpeedAimplementsObserver{JTextFieldtext二newJTextField("〃);Observableo;intspeed=0;publicSpeedA

8、(Observableo){text.setVisible(true);this・o=o;o.addObserver(this);}publicJTextFieldgetText(){returntext;}publicvoidupdate(Observableo,Objectarg){if(oinstanceofcar){carc二newcar();c=(car)o;speed=c・getspeed();text.setTe

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

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

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