标签:
如果一个类逻辑上只需要生成一个对象,如果生成了超过一个以上的对象,那么就会出错。
比如你设计某个系统,这个系统中有个东西只需要一个实例,那么直接用上单例模式就好了,
这样的好处就是,你不用考虑这个东西如果有两个以上的实例会导致什么乱七八糟的结果。
就不如IOS中的UIApplication类对象只需要一个实例,该实例负责应用程序的初始化和事件的监听。
如果突然多出来该类的一个实例,你是不是感觉到会发生错误,那么设计成单例模式就好了,就永远不会出现两个及以上的实例了。
单例设计模式分为懒汉式和饿汉式
懒汉式是在你第一次调用getInstance()函数时才生成实例对象。多线程时需要注意安全。
1 public class Single{ 2 private Single instance = null; 3 private Single(); 4 public Single getInstance(){ 5 if(instance==null) 6 instance = new Single(); 7 return instance; 8 } 9 }
饿汉式是在类加载进内存时对象的实例就存在了。天生在多线程下就是安全的。
1 public class Single{ 2 private Single instance = new Single(); 3 private Single(); 4 public Single getInstance(){ 5 return instance; 6 } 7 }
标签:
原文地址:http://www.cnblogs.com/beMaster/p/5025931.html