美文网首页
iOS项目开发MVVM架构实践(第一篇:Router协议)

iOS项目开发MVVM架构实践(第一篇:Router协议)

作者: 看不懂的故事 | 来源:发表于2018-04-28 15:12 被阅读0次

项目的开始我们必然要面临一些准备工作来做统筹布局(如: 网络API的封装、数据处理与UI布局的选择等等),我们这边选择的是Alamofire、ObjectMapper、AlamofireObjectMapper、ReactiveCocoa作为MVVM分层架构的现实:

1)运用ObjectMapper达到数据之间的相互转化;

2)结合Alamofire、ObjectMapper、AlamofireObjectMapper与ReactiveCocoa封装网络接口让数据可传递、可监听,为调用API接口服务。

3)通过viewmodel的属性(Property)和动作(Action)给view层提供必要的数据和执行的动作。

上面大致介绍了整个架构的现实原理,接下来我们要介绍的网络接口封装的第一步Router协议的实现。Router协议作为网络层现实的一部分,目的就是把API地址转化为更加容易理解的Router名称供其他地方使用,如:

Router定义 services方法 action(viewmodel层)

这就是一个登录API的现实,RouterConvertible 就是我们所要现实的router协议,我们要让router协议具备网络请求的必要属性,实现如下:

RouterConvertible

从实际上考虑除了urlPath需要外部提供,headers和paramters是可选的,method和parameterEncoding可以给与默认值,在需要的时候在作调整,那么如何让这个协议现实这样的功能呢?

swift为我们提供了协议扩展,让我们轻松现实这样的功能,如下:

RouterError RouterConvertible扩展

综上所述,我们的Router协议的实现已大功告成!

相关文章

网友评论

      本文标题:iOS项目开发MVVM架构实践(第一篇:Router协议)

      本文链接:https://www.haomeiwen.com/subject/riqclftx.html