@startuml

interface IBaseViewModel{
 @OnLifecycleEvent(Lifecycle.Event.ON_ANY)
    void onAny(LifecycleOwner owner, Lifecycle.Event event);
    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
    void onCreate();
    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
    void onDestroy();
    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    void onStart();
    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    void onStop();
    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    void onResume();
    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
    void onPause();
}
class BaseViewModel implements IBaseViewModel{
    protected M mModel;
    protected UIChangeLiveData mUIChangeLiveData;
    public void postShowInitLoadViewEvent(boolean show);
    public void postShowNoDataViewEvent(boolean show);
    public void postShowTransLoadingViewEvent(boolean show);
    public void postShowNetWorkErrViewEvent(boolean show);
}
class BaseRefreshViewModel extends BaseViewModel{
 public void postStopRefreshEvent();
    public void postAutoRefreshEvent();
    public void postStopLoadMoreEvent();
}

@enduml