观察者模式的架构

Posted it-lss

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了观察者模式的架构相关的知识,希望对你有一定的参考价值。

Bean  Manager  View 

manager负责网络请求,继承 java.util.Observable 

主要内容:

public class RequestManger extends Observable {
    private static ConsultListManger mManager;


    private String TAG = this.getClass().getSimpleName();

    private ConsultListManger() {
    }

    public synchronized static ConsultListManger getInstance() {
        if (mManager == null) {
            mManager = new RequestManger ();
        }
        return mManager;
    }

   //网络请求的方法 public void request() {
    //在网络请求出现结果后调用    
    setChanged();
    notifyObservers(informationListBean);

    如:
    request.setHttpListener(new HttpListener<String>() {
                @Override
                public void onSuccess(String s, Response<String> response) {
                    super.onSuccess(s, response);
                        setChanged();
                        notifyObservers(informationListBean);
                    } 
                }

                @Override
                public void onFailure(HttpException e, Response<String> response) {
                    super.onFailure(e, response);
                    setChanged();
                    notifyObservers("网络请求失败!");
                }
            });

  

  } }

  

View是activity或者fragment,需要实现 java.util.Observer,实现Observer的update()方法。

主要内容:

public class Fragment extends Fragment implements Observer{

    
    ........
@Override public void update(Observable o, Object arg) {   if (o instanceof RequestManager) {      if (arg instanceof Bean) {      setData(((Bean) arg));    }     }    }

    private void setData(Bean bean){
      //设置UI
    }
}                

  

 















以上是关于观察者模式的架构的主要内容,如果未能解决你的问题,请参考以下文章

从没有中间转换变量的片段中观察 ViewModel LiveData

观察者模式的架构

Java单体应用 - 架构模式 - 03.设计模式-20.观察者模式

观察者模式的应用:模拟MVC架构的实现

用java观察者模式解耦经典三层架构

设计模式之单例模式