详解Android观察者模式的使用与优劣-创新互联

一、简介

创新互联是一家专注于网站制作、成都网站制作与策划设计,武陵网站建设哪家好?创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:武陵等地区。武陵做网站价格咨询:028-86922220

观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。该模式一个重要作用就是解耦,将被观察者和观察者进行解耦,使他们之间的依赖性更小

二、使用场景

关联行为场景,需要注意的是关联行为是可拆分的而不是“组合”关系
事件多级触发场景
跨系统的消息交换场景,如消息队列、事件总线的处理机制

三、简单实现

这里我们以微信公众号的订阅为例。公众号当其更新内容时就会推送给订阅了该公众号的读者。

 //被观察者
 public class Wechat extends Observable{
  public void postNewPublication(String content){
   setChanged();
   notifyObservers(content);
  }
 }

 //观察者
 public class Reader implements Observer{
  public String name ;

  public Reader(String name) {
   this.name = name;
  }

  @Override
  public void update(Observable o, Object arg) {
   Log.i(TAG, "update: wechat is update content is :"+arg);
  }
 }
 
 public void test(){
  Wechat wechat=new Wechat();
  
  Reader reader1=new Reader("reader1");
  Reader reader2=new Reader("reader2");
  Reader reader3=new Reader("reader3");
  
  wechat.addObserver(reader1);
  wechat.addObserver(reader2);
  wechat.addObserver(reader3);
  
  wechat.postNewPublication("up up up");
 }

当前标题:详解Android观察者模式的使用与优劣-创新互联
文章位置:http://pwwzsj.com/article/dhjogg.html