定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。 一个最好的办法就是,让类自身负责保存它的唯一实例。 这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。
让类的实例去生成另一个唯一实例毫无意义的。
多线程的单例: 使用lock进行锁定处理。 或者使用提供的静态初始化方法。
什么时候使用单例模式?
- 类只能有一个实例,而且必须从一个为人熟知的访问点对其进行访问。
这个唯一的实例只能通过子类化进行扩展,而且扩展的对象不会破坏客户端代码。
子类化Singleton , 要重写单例的方法。
线程安全,可以通过加锁进行实现这个内容。
cocoaTouch 中的单例模式有; UIApplication, NSFilemanager 类。
网友评论