Android的碎片fragment和activity之前的關係 以及MVP模式詳解

參考原文:https://www.jianshu.com/p/bbb3b77d47eb

GoogleMVP機制:https://blog.csdn.net/jungle_pig/article/details/65626469

1、activity與fragment傳值

當activity動態加載fragment時可以通過fragment的setArguments()傳入值;

在fragment類中通過fragment的getArguments()方法獲得傳入的值 ;

MVP結構圖:

參考原文:https://blog.csdn.net/swust_zeng_zhuo_k/article/details/78760947
 創建MVP模式是需要經過一下幾個步驟:
 1、創建IPresenter接口,把所有的業務邏輯的接口搜放在這裏,並創建他的實現PresenterImpl,
 2、創建IView接口,把所有的視圖邏輯的接口都放在這裏,其實現類是Activity/Fragment
 3、由UML試圖可以看出,Activity包含了一個IPresenter,而PresenterImpl包含了IVew並依賴了Model,
     Activity只保留了對IPresenter的調用,其他的都放在PresenterImpl中實現,
 4、model並不是必須有的,但是一定會有Presenter和View
 

注意:虛線三角箭頭:實現;虛線箭頭:依賴; 實線三角:關聯

 

Google提出的一種MVP實現方式,步驟:

1.BasePresenter

2.BaseView

兩個接口分別作爲Presenter和View的基類,僅定義了最基本的方法,具體頁面的view和presenter則分別定義繼承的接口,添加屬於自己頁面的方法。

3.Contract 契約類

這是Google MVP與其他實現方式的不同之一,契約類用於定義同一個界面的view和presenter的接口,通過規範的方法命名或註釋,可以清晰的看到整個頁面的邏輯。

4.具體的Impl類

Fragment實現View接口,這裏使用Google推薦的創建Fragment實例的static方法newInstance(),將fragment必備的參數傳入。

 

Presenter實現類,提供一個參數爲對應View的構造器,持有View的引用,並調用View的setPresenter()方法,讓View也持有Presenter的引用,方便View調用Presenter的方法。

5.最後就是Activity

創建view以及presenter實例,並將二者聯繫起來。

 下圖是Google官方Demo:todo-mvp模式的架構圖

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章