我已经开始编写一个 iOS 应用程序,它调用各种 Web 服务调用来连接到数据库中的数据并进行身份验证等。
我想知道构建项目的好方法,特别是模型区域(该项目是 MVVM)以及对提供我的数据的 API 的任何调用。
目前我有:
--型号
--观点
--视图模型
--服务
任何 API 包装器代码都存在于服务中,例如任何登录功能或从数据库获取某些内容的 API 调用。
模型代码然后使用这些包装器来处理数据。
但是,我不确定对于我的项目结构来说最好的解决方案是什么。举例来说,我的 API 有一个 Web 服务调用,该调用返回给我一个歌曲列表:
哪里是放置后端 API 调用的包装器的好地方?
对于这个例子,我的模型中的粗略轮廓是什么? - 也就是说,我有点不确定模型中应该有多少代码,它应该调用 API 而不是包装器,还是应该只是一个简单的对象,仅描述模型中的字段(歌曲名称、艺术家等) ),或者最后应该有调用包装器代码的基本功能吗?
我是否应该对大部分 API 调用使用单例,因为我不需要为实际上的“助手”实例化多次?
最后,如果我的 API 通过过滤拉回歌曲列表或仅拉回一首歌曲,如何建模?我是否需要两个完全不同的模型,一个是歌曲列表,一个是一首歌曲?如果我有一个简单的模型类,仅列出字段,我可以看到其他代码如何调用我的 API 并创建该对象的列表,但如果模型包含获取专辑的函数,例如我就不能这样做。
我希望模型能够描述每个属性,并具有辅助方法来将数据直接解析到每个对象。
你绝对可以有一个 Singleton 来处理 API 调用并返回解析后的模型。
保持视图控制器非常轻量。
我希望这有帮助。