设计模式之观察者模式
来源:互联网 发布:淘宝黑盘羊 编辑:程序博客网 时间:2024/05/17 23:48
先定义subject 类
package com.observer.subject;
import java.util.ArrayList;
import java.util.List;
public class Subject {
//定义观察者列表
private List<Observer> observerList = new ArrayList<Observer>();
public void attach(Observer observer){
observerList.add(observer);
}
public void remove(Observer observer){
observerList.remove(observer);
}
protected void notifyObserver(){
for(Observer observer :observerList ){
observer.update(this);
}
}
}
创建NewsPaper 类
package com.observer.subject;
public class NewsPaper extends Subject {
//报纸的具体内容
String content = null;
public String getContent(){
return content;
}
public void setConent(String content){
this.content = content;
notifyObserver();//通知所有的观察者
}
}
package com.observer.subject;
public interface Observer {
//
public void update(Subject subject);
}
package com.observer.subject;
public class ConcreteObserver implements Observer {
String name =null;
public ConcreteObserver(String name){
this.name = name;
}
@Override
public void update(Subject subject) {
System.out.println(this.name +" 收到了报纸,报纸的内容为:"+((NewsPaper)subject).getContent() +this.name);
}
public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
System.out.println(this.name);
}
}
package com.observer.subject;
public class Client {
public static void main(String args[]){
NewsPaper paper = new NewsPaper();
ConcreteObserver reader1 = new ConcreteObserver();
reader1.setName("李广");
ConcreteObserver reader2 = new ConcreteObserver();
reader1.setName("李白");
ConcreteObserver reader3 = new ConcreteObserver();
reader1.setName("lyp");
paper.attach(reader1);
paper.attach(reader2);
paper.attach(reader3);
paper.setConent("今天徐才厚因患膀胱癌死亡!");
}
}
- 设计模式之-观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 大学生想创业?先找份工作吧
- 接口和抽象类区别
- 如何生成SSH key
- 从标准输入行读取输入行并在标准输出中打印这些输入行
- numpy在centos下的安装
- 设计模式之观察者模式
- Spring事务配置的五种方式
- OCM考试经验--RMAN基础详解(二)--配置、监控与管理
- Opencv对图像做腐蚀和膨胀处理的结果
- IP分片浅析
- 移动端开发网页注意
- 将电脑屏幕设置为绿色屏幕是否有护眼效果?
- oracle sql 排序后取出前几条
- SOJ.旋转矩阵