one of my other questions的评论让我思考。现在我正在使用单身Session
。它是对我的服务器的常量TCP连接的封装。它应该在应用程序启动时连接,并在应用程序的整个生命周期内保持连接。我只需要1(从同一个应用程序与我的服务器建立多个连接是没有意义的)。它应该是全球可访问的。
对这种物体使用单例是不好的设计?
答案 0 :(得分:2)
如果永远不会超过1,并且它需要全局可用,那么单例模式在这里确实有意义。但是,这些信息被遗漏在您之前的问题中,这就是我按照我的方式对其进行评论的原因。
很多人依靠单身人士轻松解决问题,而不是找到问题的真正解决方案。在这种情况下,我会在iOS设备上与UIScreen
或UIDevice
并行显示:
UIScreen有一个mainScreen
单身,指的是你的iPhone,iPad上的屏幕等等。这些设备上只能有一个主屏幕。
相反,UIDevice有一个currentDevice
类方法,它实现了同样的目的:只能有一个设备。
答案 1 :(得分:2)
不,单身模式听起来非常适合这个应用程序。我的应用程序中有类似的情况,有一个管理iAd
实例的类。我不想一遍又一遍地加载广告,具体取决于窗口;我只是想把它洗牌。
同样,您有一个想要维护的会话;单例的替代方法是在AppDelegate
中初始化它并从应用程序周围访问它。这在功能上等同于单身模式,但是相当笨拙,因为你真的只是在你知道会坚持的课程上捎带。