Chinaunix首页 | 论坛 | 博客
  • 博客访问: 400298
  • 博文数量: 38
  • 博客积分: 1490
  • 博客等级: 上尉
  • 技术积分: 406
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-08 00:52
文章分类

全部博文(38)

文章存档

2014年(1)

2013年(1)

2008年(6)

2007年(7)

2006年(23)

我的朋友

分类:

2006-05-22 14:20:40

Singleton模式:
  主要用于代表系统中全局唯一的资源和对象.其保证了该类实例对象在系统中是唯一的.
实现:(java)
   1.形式一:
 
   public class Singleton
   {
      private static singleton=new Singleton();
      private Singleton(){}
      
      public Singleton getInstance()
      {
         return singleton;
      }
   }
    
   2.形式二:
   public class Singleton
   {
      private static singleton=null;
      private Singleton(){}
      synchronized public static Singleton getInstance()
      {
         if(singleton==null)
            singleton=new singleton();
         return singleton;
      }
    }
  
    注意: 在分布式系统中该模式并不能保证其唯一性,形式二可以保证其在每个JVM上是唯一的,但是如果用其代表整个系统的唯一资源其是不可靠的,因为资源是由中间件容器管理的.对于形式一,对于实例的重新装载来说,有可能造成实例的不唯一性,例如servlet.还有就是对于形式二的getInstance方法,使用双锁定并不能保证其唯一性,因为有些编译器优化器可以在成员初始化前进行分配.
阅读(1503) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~