欢迎来到天天文库
浏览记录
ID:40313358
大小:25.56 KB
页数:7页
时间:2019-07-30
《设计模式之1 observer模式》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、设计模式总章:设计模式就是把简单的问题复杂化,带来的好处是系统的可扩展性。用了设计模式以后:复杂度增加开发成本增加维护成本降低设计模式的基本原则是,添加,而不是修改。1.什么叫分析?(确定需求是什么)分析就是要知道我要做什么。确定系统实现什么样的功能。2.什么叫设计?(实现需求)设计就是我要怎么实现。设计就是多种实现的手段当中选取一个。实现某个功能是使用什么样的方式。用一个接口来封装一系列共同具有的特点。各个监听类都去实现这个接口。在被监听的类上加上addxxxlistener方法。awt当中的事件:事件源可以是,but
2、tion,textField,textArea事件是:ActionEvent相对应的监听器是actionlistener。通过配置文件来管理observer。配置文件:文件名:observer.properties文件的内容:observers=com.bjsxt.dp.observer.Dad,com.bjsxt.dp.observer.GrandFather,com.bjsxt.dp.observer.Dog访问当前配置的文件的main方法:packagecom.bjsxt.dp.observer;importjav
3、a.io.IOException;importjava.util.ArrayList;importjava.util.List;importjava.util.Properties;//事件类classWakenUpEvent{privatelongtime;privateStringloc;privateChildsource;//事件方法publicWakenUpEvent(longtime,Stringloc,Childsource){super();this.time=time;this.loc=loc;this
4、.source=source;}publiclonggetTime(){returntime;}publicvoidsetTime(longtime){this.time=time;}publicStringgetLoc(){returnloc;}publicvoidsetLoc(Stringloc){this.loc=loc;}publicChildgetSource(){returnsource;}publicvoidsetSource(Childsource){this.source=source;}}//被监听类
5、。classChildimplementsRunnable{privateListwakenUpListeners=newArrayList();publicvoidaddWakenUpListener(WakenUpListenerl){wakenUpListeners.add(l);}voidwakeUp(){for(inti=0;i6、ners.get(i);l.ActionToWakenUp(newWakenUpEvent(System.currentTimeMillis(),"bed",this));}}publicvoidrun(){try{Thread.sleep(5000);}catch(InterruptedExceptione){e.printStackTrace();}this.wakeUp();}}//监听类classDadimplementsWakenUpListener{publicvoidActionToWakenUp(Wake7、nUpEventwakenUpEvent){System.out.println("feedchild");}}//监听类classGrandFatherimplementsWakenUpListener{publicvoidActionToWakenUp(WakenUpEventwakenUpEvent){System.out.println("hugchild");}}//监听类classDogimplementsWakenUpListener{publicvoidActionToWakenUp(WakenUpEve8、ntarg0){System.out.println("wangwang...");}}//监听接口interfaceWakenUpListener{publicvoidActionToWakenUp(WakenUpEventwakenUpEvent);}//主类publicclassTest{publicstati
6、ners.get(i);l.ActionToWakenUp(newWakenUpEvent(System.currentTimeMillis(),"bed",this));}}publicvoidrun(){try{Thread.sleep(5000);}catch(InterruptedExceptione){e.printStackTrace();}this.wakeUp();}}//监听类classDadimplementsWakenUpListener{publicvoidActionToWakenUp(Wake
7、nUpEventwakenUpEvent){System.out.println("feedchild");}}//监听类classGrandFatherimplementsWakenUpListener{publicvoidActionToWakenUp(WakenUpEventwakenUpEvent){System.out.println("hugchild");}}//监听类classDogimplementsWakenUpListener{publicvoidActionToWakenUp(WakenUpEve
8、ntarg0){System.out.println("wangwang...");}}//监听接口interfaceWakenUpListener{publicvoidActionToWakenUp(WakenUpEventwakenUpEvent);}//主类publicclassTest{publicstati
此文档下载收益归作者所有