尽管该主题有许多线索,但我仍不清楚何时选择哪种方法。 我希望通过讨论一个具体的例子,我会最终“明白”。单身人士班级与静态会员班级
注:我的语言在这里是可可,尽管一般问题不是语言特定的。
我有,我想用一类TaskQueue中:为了从任何地方在我的代码
- 访问
- 过程中自动计划任务定期添加或删除计划任务
当第一次使用TaskQueue时,我希望TaskQueue启动一个线程,然后它将定期唤醒以处理任务。
很显然,我需要至少两个变量:
- 数组存储任务
- 线的一个实例处理任务
因为我只想要一个队列我有两个选择:
做任务队列一个单独的类(例如使用CWL_DECLARE_SINGLETON_FOR_CLASS_WITH_ACCESSOR为http://www.cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html,我相信我将不得不修改CWLSynthesizeSingleton.h文件,开始在初始时间线程描述。)
有任务和线程的阵列例如两者是静态的(做法以下建议位置:How do I declare class-level properties in Objective-C?)
是否有明确的一种方法,它比其他人在这个特定情况下更好?如果是这样,为什么?
duped:http://stackoverflow.com/questions/519520/difference-between-static-class-and-singleton-pattern?lq=1 – cregox