我的iOS应用程序对Web服务提出了很多不同的请求。每个请求都是对ConnectionManager对象的方法的调用。当响应从Web服务到达时,调用委托的方法来通知感兴趣的接收者。此外,为了使会话保持活动状态,每X秒轮询一次是必需的。
这样说,在你看来,如果ConnectionManager是单身人士还是没有?
单例更简单(因为我不必将ConnectionManager的引用传递给所有需要向Web服务请求的人,或者我不必创建更多的ConnectionManagers)。而且,很容易处理轮询问题:我只需在ConnectionManager上添加两个方法startPolling和stopPolling。但是我不喜欢使用带有单例的委托(因为只有一个委托,如果没有一个集合时响应就会发生什么?)同时我不喜欢使用通知。我也不喜欢单身人士:)
您对替代模式有什么建议吗?
答案 0 :(得分:5)
我和你一样经历了类似的思考,并最终得到了这种模式:
ConnectionManager [singleton] - 负责维护与服务器的连接并提交&接收请求
ConnectionQueue [singleton] - 存储一堆等待完成的请求
请求 - 每次需要从服务器创建时创建。它包含所有请求数据(url,params等)和对委托的引用。
响应 - 从服务器检索的数据的容器以及原始请求。
将它们连在一起......
答案 1 :(得分:0)
您可以看到this other post:。 我认为这很有用。