--------------------------------------- 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
最新推荐文章于 2024-08-27 18:11:07 发布