东南大学Java设计模式作业观察者模式.doc
《东南大学Java设计模式作业观察者模式.doc》由会员分享,可在线阅读,更多相关《东南大学Java设计模式作业观察者模式.doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实例一:猫、狗与老鼠 假设猫是老鼠和狗的观察目标,老鼠和狗是观察者,猫叫老鼠跑,狗也跟着叫,使用观察者模式描述该过程。类图:代码:import java.util.*;public abstract class MySubject protected ArrayList observers = new ArrayList();public abstract void attach(MyObserver obs);public abstract void detach(MyObserver obs);public abstract void cry(); public class Cat ext
2、ends MySubjectpublic void attach(MyObserver obs)obs.add(obs);public void detach(MyObserver obs)obs.remove(obs);public void cry()for(Object obs:obs)(MyObserver)obs).response(); public interface MyObserverpublic void response(); public class Mousepublic void response()/具体更新代码 public class Dogpublic vo
3、id response()/具体更新代码 实例二:自定义登录控件 Java事件处理模型中应用了观察者模式,下面通过一个实例来学习如何自定义Java控件,并给该控件增加相应的事件。该实例基于Java Swing/AWT控件,在Swing/AWT的相关类中封装了对事件的底层处理。 类图:代码:import javax.swing.*;import java.awt.event.*;import java.awt.*;import java.util.EventObject;import java.util.EventListener;public class LoginBean extends J
4、Panel implements ActionListenerprivate LoginEventListener lel; private LoginEvent le;public LoginBean()/详细代码public void addLoginEventListener(LoginEventListener lel)this.lel=lel;private void fireLoginEvent(Object object,String userName,String password)le=new LoginEvent(btnLogin,userName,password);le
5、l.validateLogin(le);public void actionPerformed(ActionEvent event)if(btnLogin=event.getSource()String userName=this.txtUserName.getText();String password=this.txtPassword.getText();fireLoginEvent(btnLogin,userName,password);if(btnClear=event.getSource()this.txtUserName.setText();this.txtPassword.set
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东南大学 Java 设计 模式 作业 观察者
限制150内