美文网首页
java 观察者模式

java 观察者模式

作者: JackTangIT | 来源:发表于2016-05-08 11:44 被阅读99次

概念

观察者可以有多,观察一个,或者一个观察一个
在android开发中经常使用接口回调的方式来通知观察者,有个缺点就是只能去通知一个,不能通知到多个观察者,下面简单用java代码自定义一个观察者模式,重点在于思想
-----------代码----------
关于观察者模式,在android开发中经常常用到的一点,
老师发布通知给学生, 在android开发中我们常用的是 接口的回调
例如点击事件
ss.setOnclick(Onclicko) ;
缺点是同一个时间只能通知一个
为了更加清晰的认识观察者模式,下面就利用java代码 简单实现自定义一个观察者设计模式,1次改变多处收到通知
/**
*@paramargs
*/
public static void main(String[] args) {
Student1 student1 =newStudent1();
Student2 student2 =newStudent2();
Student3 student3 =newStudent3();
Teach teach =newTeach();
teach.addObserver(student1);
teach.addObserver(student2);
teach.addObserver(student3);
teach.notifyObserver("我来了");
}
}

/**
*@authorjack_tang
*/
public interface MyObserver {
//首先要有一个处理事件
public void toast(String mesg);
}

/**
*@authorjack_tang
*/
public class Teach {
ListlinkedList=newLinkedList();
//添加观察者
public void addObserver(MyObserver o){
if(o==null)return;
if(!linkedList.contains(o)){
linkedList.add(o);
}
}
//删除观察者
public void removeObserver(MyObserver o){
if(o==null)return;
if(linkedList.contains(o)){
linkedList.remove(o);
}
}
//遍历集合 通知所有观察者
public void notifyObserver(String mesg){
for(MyObserver observer :linkedList) {
observer.toast(mesg);
}
}
}

public class Student1 implements MyObserver{
public void toast(String mesg) {
System.out.println(getClass().getName()+" 收到=="+mesg);
}
}

public class Student2 implements MyObserver{
public void toast(String mesg) {
System.out.println(getClass().getName()+" 收到=="+mesg);
}
}

public class Student3 implements MyObserver{
public void toast(String mesg) {
System.out.println(getClass().getName()+" 收到=="+mesg);
}
}

相关文章

  • 观察者设计模式

    每周学点Java设计模式__观察者设计模式 本次继续更新java23中设计模式之一——观察者模式。 观察者模式(有...

  • RxJava 2.x知识笔记

    观察者模式的运用 传统的Java观察者模式可以参考此篇博客:Java观察者模式案例简析 RxJava 是基于Jav...

  • java建造者模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java单例模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java外观模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java适配器模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java观察者模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java代理模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • java策略模式

    其他设计模式java单例模式java建造者模式java策略模式java代理模式java观察者模式java适配器模式...

  • 六、JDK自带观察者

    利用Java提供的Observer接口和Observable类实现观察者模式 对于观察者模式,其实Java已经为我...

网友评论

      本文标题:java 观察者模式

      本文链接:https://www.haomeiwen.com/subject/gxusrttx.html