Swift iOS-JSON的设计模式

Swift iOS-JSON的设计模式,swift,cocoa-touch,Swift,Cocoa Touch,我将在Swift中构建一个与此API通信的iOS应用程序,在构建之前,我想听听您对设计模式的建议。我真的在努力学习如何在这里创建一个干净、一流的MCV设计,所以欢迎任何提示 我已经编写了一个RESTAPI,它通过HTTP在一堆资源上启用CRUD操作,让我们称它们为“项”。项目有几个属性,如“名称”、“类型”等。有一些关系(例如,“项目”分配给“用户”)。数据以JSON表示 我正在努力解决的一个关键问题是,JSON下载和解析的逻辑应该放在哪里。你把它放在视图控制器里了吗?还是创建一个单独的控制器类

我将在Swift中构建一个与此API通信的iOS应用程序,在构建之前,我想听听您对设计模式的建议。我真的在努力学习如何在这里创建一个干净、一流的MCV设计,所以欢迎任何提示

我已经编写了一个RESTAPI,它通过HTTP在一堆资源上启用CRUD操作,让我们称它们为“项”。项目有几个属性,如“名称”、“类型”等。有一些关系(例如,“项目”分配给“用户”)。数据以JSON表示

我正在努力解决的一个关键问题是,JSON下载和解析的逻辑应该放在哪里。你把它放在视图控制器里了吗?还是创建一个单独的控制器类?我想对几个资源(例如“items”和“users”)重复使用JSON代码。我真的需要一个ItemManager和ItemViewController吗

我目前的想法是:

  • (M) Item—遵循API上资源的确切结构的可解码JSON结构
  • (M) 用户识别码
  • (C) JSONController—一个类,它获取URL和预期的类类型,然后去检索响应并返回该类的实例
  • (C) ItemManager—一个跟踪所有项目的类(通过启动一组项目类实例),并在需要时使用JSON控制器进行更新
  • (C) 用户管理器-idem
  • (C) ItemViewController-从ItemManager检索项目并为视图控制器准备它们;还协调按钮动作等
  • (C) 用户视图控制器-idem
  • (五) ItemView—以表格形式显示项目的视图
  • (五) UserView-idem
非常感谢和亲切的问候,
斯科特

你所做的是正确的,网络应该从控制器上完成。但是,最好将它与视图控制器分开,这似乎就是您使用JSONController类所做的。是一篇关于“MVC-N”范例的有趣文章,基本上就是您正在做的事情:将网络组件与视图控制器分离。

分离责任,最好有多个类,每个类有一个或几个责任,而不是相反,