设计模式学习(4)观察者模式
来源:互联网 发布:荔波二中七天网络 编辑:程序博客网 时间:2024/05/22 12:34
今天来介绍的是,行为模式中的观察者模式
从使用的目的来说,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己
package cn.edu.ken.designpattern.observer;public class ConcreteObserver extends Observer {private String observerState;private String name;private ConcreteSubject subject;public ConcreteObserver(ConcreteSubject concreteSubject, String observer) {// TODO Auto-generated constructor stubthis.observerState = observer;this.name = observer;this.subject = concreteSubject;}@Overridepublic void update() {// TODO Auto-generated method stubobserverState = subject.getSubjectState();System.out.println("name:"+name+",subjectState:"+observerState);}}
package cn.edu.ken.designpattern.observer;public abstract class Observer {public abstract void update();}
package cn.edu.ken.designpattern.observer;public class ConcreteSubject extends Subject {private String subjectState;public String getSubjectState() {return this.subjectState;}public void setSubjectState(String state){this.subjectState = state;}}
package cn.edu.ken.designpattern.observer;import java.util.ArrayList;import java.util.List;public class Subject {List<Observer> observers = new ArrayList();protected void Attach(Observer observer){observers.add(observer);}protected void Detach(Observer observer){observers.remove(observer);}protected void Notify(){for (Observer observer: observers){observer.update();}}}
最后是使用的类
package cn.edu.ken.designpattern.observer;public class Client {public static void main(String[] args){ConcreteSubject subject = new ConcreteSubject();subject.Attach(new ConcreteObserver(subject,"ObserverA"));subject.Attach(new ConcreteObserver(subject,"ObserverB"));subject.Attach(new ConcreteObserver(subject,"ObserverC"));subject.setSubjectState("Ready");subject.Notify();}}
0 0
- 设计模式学习(4)观察者模式
- 设计模式学习--观察者模式(observer)
- 设计模式---观察者模式(学习笔记)
- 设计模式学习(一)观察者模式
- 设计模式学习--观察者模式
- 设计模式学习----观察者模式
- 设计模式学习-----观察者模式
- 设计模式学习--观察者模式
- 设计模式学习:观察者模式
- C#设计模式- 观察者模式(4)
- 设计模式-观察者模式(4)
- Java设计模式(4)--观察者模式
- 设计模式(4): 观察者模式
- 【设计模式】## 4、观察者模式 ##
- 设计模式(观察者模式)
- IOS设计模式学习(12)观察者
- 观察者设计模式--学习笔记
- [boolan]设计模式 观察者学习
- Oracle一些基本术语英汉对照
- zookeeper学习系列(五)zookeeper分布式锁机制
- (Linux系统、Windows系统)的回车和换行
- 寻找平面上的极大点(C程序设计进阶第9周)
- UVA 11292 Dragon of Loowater
- 设计模式学习(4)观察者模式
- 使用homebrew 安装 mongodb 出现问题
- linux date命令
- [解决]Error:failed to find Build Tools revision
- mysql更改root密码
- 乱码问题!Eclipse 的控制台console必须用GBK编码
- 文章标题
- Python脚本启动Java服务
- LeetCode-String To Integer