java设计模式之观察者模式
来源:互联网 发布:免费录音软件 编辑:程序博客网 时间:2024/06/05 14:35
概述:观察者模式相当于一对多的依赖,就是当一个对象改变时,会通知它所关联的类
在这里,我们把被观察者用接口Subject定义,把观察者用接口Observer定义
/** * 被监视的需要实现这个接口,用于添加,删除,通知观察者 * @author zhou * */public interface Subject {public void addObser(Obsered obsered);public void deletObser(Obsered obsered);public void notifiObser(String context);}
/** * 观察者实现这个接口,接收消息 * @author zhou * */public interface Observer {public void ubdate(String str);}
//被观察者public class ConcreteSubject implements Preson,Subject{public List<Observer> list = new ArrayList<Observer>();@Overridepublic void addObser(Observer obsered) {// TODO Auto-generated method stublist.add(obsered);//添加观察者}@Overridepublic void deletObser(Observer obsered) {// TODO Auto-generated method stublist.remove(obsered);//移除观察者}@Overridepublic void notifiObser(String str) {// TODO Auto-generated method stubfor(Observer obsered:list){obsered.ubdate(str);//通知观察者消息}}@Overridepublic void eat() {// TODO Auto-generated method stubthis.notifiObser("这货在吃饭");}@Overridepublic void haveFun() {// TODO Auto-generated method stubthis.notifiObser("这货在玩耍");}}
/** * 观察者 * @author zhou * */public class ConcreteObserver implements Observer {@Overridepublic void ubdate(String str) {// TODO Auto-generated method stubSystem.out.println("韩非子在吃饭");//在这里我已经得到消息happy();}public void happy() {// TODO Auto-generated method stubSystem.out.println("这货很快乐");}}
//添加观察者
ConcreteSubject concreteSubject = new ConcreteSubject(); Observer lisi = new ConcreteObserver(); concreteSubject.addObser(liusi); concreteSubject.haveFun();
github地址为: https://github.com/zhouwei5200/observer
1 0
- java设计模式之“观察者设计模式”
- Java设计模式之观察者设计模式
- 《java设计模式》之观察者设计模式
- Java设计模式之观察者
- Java设计模式之观察者
- Java设计模式之Observer(观察者)模式
- Java设计模式之Observer 观察者模式
- Java设计模式之Observer-观察者模式
- java 设计模式之二-观察者模式
- Java设计模式之观察者模式
- java设计模式之观察者模式
- java设计模式之观察者模式Observer
- java设计模式之观察者模式
- Java设计模式之观察者模式
- JAVA设计模式之观察者模式2
- java与设计模式之观察者模式
- Java--设计模式之观察者模式
- java设计模式之观察者模式
- HDU 1180 诡异的楼梯 BFS
- android app项目启动时的架构搭建
- 1042. 字符统计
- 查看数据库中是否存在某张表的sql语句
- Windows 下修改MySQL的root密码
- java设计模式之观察者模式
- 初级安卓程序试题
- 【读书笔记】javascript语言精粹--第8章 方法
- 如何通过一张图片找到你的位置?
- 向老虎诉苦的人--贝西西
- 工作积累的一些代码教训(不定期更新)
- 菜鸟面试题收集
- 基础iOS
- cocoPods的使用