1

因此,我将 AFNetworking 用于 iOS 应用程序,并且我只是进行了一些重构以包含一些网络可达性代码。我之前对请求等参数进行编组的设计模式是创建特定于服务的请求参数,然后使用这些参数创建一个 NSURL,然后创建一个 NSURLRequest。

我连接的服务无处不在——有些需要签名请求、访问令牌、混乱的苦涩等等(Twitter、Foursquare、Instagram、Tumblr 等)。

对于每个服务,基于通用的、与服务无关的协议,我有能够检索状态、检索用户配置文件数据等的方法。在这些方法中,我创建了一个 AFHTTPClient 并且工作正常。

但是,现在我添加了一些应用程序语义 [AFHTTPClient setReachabilityStatusChangeBlock:] 我想知道是否应该为处理各种服务请求的类的每个实例创建一个 AFHTTPClient,而不是为该类中的每个方法创建一个处理服务请求?定义可达性状态更改块

有人对在这种情况下使用的良好设计模式有什么建议吗?我的意思是——我可以解决一些问题,但我想知道是否存在“最佳实践”/“从经验中构建”模式?

通常,我处理来自特定服务的请求的类是长期存在的。在运行时登录的每个“用户”都有一个,尽管用户的数量通常很少——几十个。

我想我要问的是——一般来说,人们通常在哪里定义他们的 AFHTTPClient,他们通常有网络可达性状态更改块做什么?(本能说:取消操作,如果状态表明互联网已消失,则提醒用户,当然——但任何巧妙的“重试”语义等?)

4

1 回答 1

1

在我的应用程序中,坚持“每个 API 服务器一个 APIClient”的规则。当向每个 APIClient 添加不同的位和技巧时,这很方便。它们可能因授权类型和加密而异。

关于可达性。您是否尝试过NSNotificationCenter为此目的使用。这就是创建的目的 - 填充广泛使用的事件。您可以检查可达性库及其示例。

于 2013-09-05T11:07:50.547 回答