连接pipe理器:单身还是不单身?

我的iOS应用程序对Web服务做了很多不同的请求。 每个请求都是对ConnectionManager对象的方法的调用。 当响应从Web服务到达时,调用委托方法通知感兴趣的接收方。 而且,为了使会话保持活动状态,需要每隔X秒轮询一次。

这样说,在你看来,最好是ConnectionManager是单身还是不是?

单例更简单(因为我不必将ConnectionManager的引用传递给所有需要对Web服务执行请求的人员,或者不必创build更多的ConnectionManagers)。 而且,处理轮询问题很简单:我只是在ConnectionManager上添加两个方法startPolling和stopPolling。 但是我不喜欢用单例来使用委托(因为只能有一个委托,如果没有一个委托时会有响应,会发生什么情况?),同时我也不喜欢使用通知。 我不喜欢这个单身人士:)

你有关于替代模式的build议吗?

我和你一样经历了类似的想法,最终形成了这样的模式:

ConnectionManager [singleton] – 负责维护到服务器的连接并提交和接收请求

ConnectionQueue [singleton] – 存储一堆等待被执行的请求

请求 – 每次需要从服务器上创build的时候创build。 它包含所有的请求数据(url,参数等)和对代表的引用。

响应 – 与原始请求一起从服务器检索数据的容器。

连接在一起…

  1. ConnectionManager在启动时启动,并创buildConnectionQueue
  2. 当需要调用服务器时,创build一个Request对象,传递所有需要的参数并将其添加到ConnectionQueue
  3. 该队列让经理知道有一个需要处理的请求
  4. pipe理员从队列中移除请求并向服务器发起呼叫
  5. 数据已收到
  6. 经理创build响应并将其发回给委托人。

你可以看到这个post: 。 我认为这可能是有用的。