Android開發(fā)中,Activity并不是標準的MVC模式中的Controller谤草,其首要職責是加載應用的布局和初始化用戶界面跟束,接受和處理來自用戶的操作請求,進而作出響應丑孩。隨著界面和邏輯的復雜度不斷提升冀宴,Activity類的職責不斷增強,從而變得龐大臃腫温学。當我們將其中復雜的邏輯處理移至另外的一個類(Presneter)中時略贮,Activity其實就是MVP模式中View,它負責UI元素的初始化枫浙,建立UI元素與Presenter的關(guān)聯(lián)(Listener之類)刨肃,同時自己也會處理一些簡單的邏輯(復雜的邏輯交由Presenter處理).
另外,回想一下你在開發(fā)Android應用時是如何對代碼邏輯進行單元測試的箩帚?是否每次都要將應用部署到Android模擬器或真機上真友,然后通過模擬用戶操作進行測試?然而由于Android平臺的特性紧帕,每次部署都耗費了大量的時間盔然,這直接導致開發(fā)效率的降低。而在MVP模式中是嗜,處理復雜邏輯的Presenter是通過interface與View(Activity)進行交互的愈案,這說明了什么?說明我們可以通過自定義類實現(xiàn)這個interface來模擬Activity的行為對Presenter進行單元測試鹅搪,省去了大量的部署及測試的時間站绪。