Skip to content
997694052 edited this page Feb 26, 2019 · 22 revisions

一个很轻量级的MVP框架层

UML

UML

MVP包中的目录

--model
 |--MostBasicModel
--presenter
 |--IPresenter
 |--MostBasicPresenter
--view
 |--IActivity
 |--IView
 |--MostBasicActivity
 |--MostBasicFragment
--ActivityLifecycleBindCallbacks
--ApplicationMostBasic
--FragmentLifecycleBindCallbacks

核心类只有6个:

  • ApplicationMostBasic
    在ApplicationMostBasic中注册了Activity生命周期的监听,并将其生命周期绑定到对应的presenter.
    当Activity派生至FragmentActivity且实现了IActivity且hasFragment()方法返回true时,会在Activity onCreate时注册Fragment生命周期监听器.
  • ActivityLifecycleBindCallbacks
    Activity生命周期监听器,在其中绑定Activity生命周期至presenter.如果需要还会注册包含的fragment生命周期监听器.
    通过依赖的ApplicationMostBasic对象提供处于活动状态的Activity.
  • FragmentLifecycleBindCallbacks Fragment生命周期监听器,在其中绑定了必要的生命周期至对应的presenter.
  • IView
    view应该实现的接口.
    ActivityLifecycleBindCallbacks和FragmentLifecycleBindCallbacks依赖该接口,并通过peekPresenter()获取view持有的presenter进行生命周期绑定.
    createPresenter()方法用于创建presenter.便于在特定的时机实例化持有的presenter.
    peekApplication()用于提供应用的application.
  • IActivity 如果Activity内部有需要框架管理的Fragment,应该实现该接口,且重写的hasFragment()方法返回true. ActivityLifecycleBindCallbacks依赖了接口.
  • IPresenter
    Presenter所需要实现的接口.
    ActivityLifecycleBindCallbacks和FragmentLifecycleBindCallbacks依赖了该接口,并将生命周期绑定至该接口对应的方法.

Clone this wiki locally