【发布时间】:2015-05-06 21:10:36
【问题描述】:
很明显,没有这样的东西作为iOS中的后台服务。话虽如此,我正在寻找一种在设计模式下执行网络请求的标准方法。
在Android背景下,Google I/O 2010 提出了下图所示的设计模式。
这基本上意味着您不应该直接从 Activity 发出网络请求,而是将其发送到后台服务(橙色矩形)。这背后的原因(在this document 中列出)包括系统可能会在用户离开屏幕时终止 Activity。
回到我之前所说的,我正在寻找与 RESTful iOS 应用程序的设计模式相关的标准或原则,因为我注意到 UIViewController 可能会在以下情况下停止异步操作:
- 用户按下主页按钮,应用关闭(这是意料之中的)
- 设备改变了方向
考虑到这一点,让我们进入将文件上传到服务器的场景,假设它是一张图片。网络请求可能需要一些时间才能完成,用户也可以更改设备方向或离开应用程序。我们如何解决这个问题?
注意:我知道一个解决方案可能只是通过使视图控制器成为 API 客户端类的委托来使用 delegate pattern,但我觉得这会违反 Single Responsibility Principle
【问题讨论】:
标签: android ios rest design-patterns