首页 > Python > 单例模式

单例模式

2011年11月28日 发表评论 阅读评论

单例模式说通俗点就是一个类实例化出来的对象是同一个对实例,同时我们还要考虑这个类是否线程安全,在多线程的情况下,是否会产生多个实例,因为大部分设计模式的说明都是采用java语言,我这里也采用这种方式(可以从其他地方直接复制例子过来)

public class ClassicSingleton {   
   private static ClassicSingleton instance = null;   

   private ClassicSingleton() {   
      // Exists only to defeat instantiation.   
   }   
   public static ClassicSingleton getInstance() {   
      if(instance == null) {   
         instance = new ClassicSingleton();   
      }   
      return instance;   
   }   
}

这种方法在单例模式称为“懒汉式”,这个单例类的实例直到getInstance()方法被第一次调用时才被创建。这种技巧可以确保单例类的实例只有在需要时才被建立出来,然而在多线程且并发高的情况下instance == null是可能多次成立,也就有可能创建多个实例。

public class ClassicSingleton {   
   private static final ClassicSingleton instance = new
    ClassicSingleton();

   private ClassicSingleton() {   
      // Exists only to defeat instantiation.   
   }   
   public static ClassicSingleton getInstance() {      
      return instance;   
   }   
}

这是“饿汉式”的例子,它在系统初始化的时候,就会将生成实例放在内存中,同时也可以确保其是线程安全的。

参考文档:
1.http://www.iteye.com/topic/60179

除非注明,文章为IT热血青年原创,欢迎转载!转载请注明本文地址,谢谢。
本文地址:http://blog.itblood.com/single-python.html

分类: Python 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.