--------------------------------------- Android開發架構------MVP MVC View 視圖層 Controller 控制器 Model 模型層 MVP View 視圖層 Presenter 主導器 Model 模型層 View層 IUserView{ void showSuccess(); void showError(); } Activity implements IUserView{ doClick(View view){ R.id.b1: UserPresenter pre = new UserPresenterImpl(this); pre.regist(zs,1234); break; } showSuccess(){ Toast.(成功) } showFail(){ Toast.(失敗) } } Presenter層 IUserPresenter{ regist(name, pwd); } UserPresenterImpl{ IUserView view; public UserPresenterImpl(IUserView view){ this.view = view; } void regist(name, pwd){ UserModel model = new UserModelImpl(); success=model.regist(zs,1234); if(success){ view.showSuccess() }else{ view.showError() } } } 模型層 IUserModel{ boolean regist(name , pwd); } UserModel implements IUserModel{ bolean regist(String name, String pwd){ 執行註冊業務 return true; } } 友錄分包結構: com.tarena.youlu activity 存放activity view 存放view層接口 model 存放model層接口 model.impl 存放view層實現類 presenter 存放presenter層接口 presenter.impl 存放presenter層實現 fragment fragment util 工具類 adapter 適配器 MVP聯繫人列表業務分析 View層: IContactView{ void setContactList(List<Contact> list); void showData(); } ContactFragment implements IContactView{ onCreateView(){ 調用presenter的方法,加載所有聯繫人 } void setContactList(List<Contact> list); void showData(); } presenter層 IContactPresenter{ void loadAllContacts(); } ContactPresenterImpl impl xxxx{ void loadAllContacts(){ 調用model層的方法加載所有聯繫人 presenter = new ContactPresenter(); presenter.loadAllContacts(new Callback(){ onContactsLoaded(List contact){ 集合查詢完畢後執行 更新view } }); } } Model層 IContactModel{ List<Contact> loadAllContact(); } ContactModelImpl impl xxxxx{ List<Contact> loadAllContact(Callback callback){ 工作線程中查詢數據庫 new AsyncTask(){ onPostExecute(){ 調用回調方法 讓presenter做後續操作 callback.onContactsLoaded(contacts); } } } } interface Callback{ onContactsLoaded(List contact); }
MVP
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.