JAVA设计模式一:---Singleton(单例模式)

[java]  view plain copy print ?
  1. package design.singleton;  
  2.   
  3. /** 
  4.  * 文件名称:design.singleton.Singleton.java 
  5.  * 创建人:Fei Wong 
  6.  * 创建时间: 2012-06-20 
  7.  * 电子邮箱:feiwong8@126.com 
  8.  * 一、JAVA单例模式介绍:分别介绍了,几种不同的单例 
  9.  *            模式的实现方式,Singleton 是一种创建型模式, 
  10.  *            指某个类采用 Singleton 模式,则在这个类被创 建后, 
  11.  *            只可能产生一个实例供外部访问,并且提供一个全局的访问点。 
  12.  *            全局对象和 Singleton 模式有本质的区别,因为大量使用全局对象会使得程 
  13.  *            序质量降低,而且有些编程语言根本不支持全局变量。最重要的 
  14.  *            是传统的全局对 象并不能阻止一个类被实例化多次。 
  15.  * 二、单例模式的特点单例模式的: 
  16.  *            单例类只能有一个实例 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。 
  17.  * 三、单例模式的应用 
  18.  *              每台计算机可以由若干个打印机,但只能有一个 Printer Spooler,避免有两个  
  19.  *              作业同时输出到打印机。 一个具有自动编号主键的表可以有多个用户同时使用, 
  20.  *              但数据库中只能有一个地方分配下一个主键。否则会出现主键重复。 
  21.  * 四、单例模式使用的注意 单例模式使用的注意 模式使用的 
  22.  *      不要使用单例模式存取全局变量。这违背了单列模式的用意,最好放到对应类的静态成员中。 不要将数据库连接做成单例, 
  23.  *      因为一个系统可能与数据库有多个连接,并且在有连接池的情况下, 
  24.  *      应当尽可能及时释放连接。Singleton 模式由于使用静态成员存储类实例,所以可能会造成资源无法及时释放。 
  25.  * */  
  26. public class Singleton {  
  27.       
  28.     private static Singleton singleton ;   
  29.     /** 
  30.      * 饱汉方式的单例模式 但是有多个线程访问时就不是安全的 返回的不是同一个对象 
  31.      * */  
  32.     public static Singleton getInstance1(){  
  33.         singleton = singleton == null ? new Singleton() : singleton ;  
  34.         return singleton ;  
  35.     }  
  36.     /** 
  37.      * 此种方法 线程安全,但是效率非常低在一个时候只有一个线程能访问个对象 
  38.      * */  
  39.     public synchronized Singleton getInstance2(){  
  40.         singleton = singleton == null ? new Singleton() : singleton ;  
  41.         return singleton ;  
  42.     }  
  43.     /** 
  44.      * 线程安全,线程安全 并且效率高 能有多个线程访问 
  45.      * */  
  46.     public  Singleton getInstance3(){  
  47.         synchronized(Singleton.class){  
  48.             singleton = singleton == null ? new Singleton() : singleton ;  
  49.         }  
  50.         return singleton ;   
  51.     }  
  52. }  
  53. 转载处:http://blog.csdn.net/hfmbook/article/details/7679707
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值