1.什么是MVP?

    MVP是模型(Model)、视图(View)、主持人(Presenter)的缩写,分别代表项目中3个不同的模块。 

1.1 模型 (Model):负责处理数据的加载或存储

1.2 视图 (View):负责界面数据的展示与用户交互

1.3 主持人(Presenter):是Model和View之间的桥梁,将两者进行链接。

 【Swift实现代码】iOS架构模式之MVP

整个交互流程看起来大致是这样的:

用户交互->View获得交互事件->View将事件转发给Presenter->Presenter调用Model获取新数据->Presenter将数据推送给View进行展示

案例1:

这里我们用app开发中常用的登录功能为例,用mvp来实现一个登录逻辑(功能)。既然用MVP 那么我们得新建三个类即:LoginModel,LoginPresenter,LoginView

class loginPresenter: NSObject {
    //声明V和M2个属性,其中的V中写了代理,待优化
    private var loginViewDelegate:LoginViewDelegate?
    private var loginModel:LoginModel?
    
    //实例化
    override init() {
        //model实例化
        self.loginModel = LoginModel()
    }
    
    //V层调用这个login方法,这个方法再调用M层的login方法
    func login(usrName: String, pwd: String)   {
        self.loginModel?.login(usrName: usrName, pwd: pwd, callback: { (result) in
            //从m层的的回调,回调到v层去,同样还是通过一个代理实现
            self.loginViewDelegate?.onLoginResult(result: result)
        })
    }
    
    //绑定V和P
    func attachView(viewDelegate:LoginViewDelegate)  {
        self.loginViewDelegate = viewDelegate
    }
    
    //解除绑定,假如网络请求是,viewController已经释放,则无需再回调更新UI
    func detachView()  {
        self.loginViewDelegate = nil
    }
    
}
Presenter

相关文章:

  • 2021-10-29
  • 2021-08-24
  • 2021-04-04
  • 2022-01-21
  • 2022-12-23
  • 2022-02-20
  • 2021-12-23
猜你喜欢
  • 2021-09-12
  • 2022-01-02
  • 2021-06-24
  • 2021-05-25
  • 2022-12-23
  • 2021-10-10
相关资源
相似解决方案