黑马程序员------java学习笔记之单例设计模式

------- android培训java培训、期待与您交流!----------

一、什么是设计模式

    设计模式是解决某类问题行之有效的思考方式  ,是规律,是在不断的劳动中总结出来的经验

二、单例设计模式

1、它到底解决什么问题  
    保证一个类在内存中的对象唯一性  
  
应用场景:比如多程序使用同一个配置文件,那就需要该配置文件保证对象唯 一  
  
  
如何保证对象的唯一性呢??  
  
由其他程序创建该类对象,无法进行控制,所以必须不让其他程序创建该类对象  
为了让其他程序还可以有对象使用,在该类中自定义一个本类对象  
对外提供一个可以访问到这个对象的方法即可  
步骤  
1、可以将该类的构造函数私有化  
2、在本类中创建一个本类对象  
3、对外提供一个公共方法返回该对象  
  
  
成员变量一般都要私有化  
  
饿汉式:就是先将对象初始化,在single 类一进内存,就已经建立对象  
class Single()  
{  
    private Single(){}   //私有化构造函数  
    private static  Single s=new Single();  
    public static   single getInstance()  
    {  
     return s;  //定义 方法返回S 是让这个S在可控  
  
      
    }  
  
}  
饿汉式会先初始化对象,在Single类一进内存时,就已经建立了对象  
   例:  
   class Person  
   {  
     private Person(){}  
     private static Person p=new Person();  
     public static Person getInstance()  
     {  
       return p;  
       
     }  
   }  
  
    如果在设计程序过程中,发现要让这个程序保证数据的唯一性,就可以通过单例设计模式来进行  
       
  
懒汉式  
   class Single  
   {  
    private static Single s=null;  
    private Single(){}  //让对象不可以初始化  
     public static Single getInstance()  
     {  
       if(s==null)  
       {  
        s=new Single();  
         
       ]  
        return s;  
      }  
   }  
 懒汉式:是方法被调用时才对对象初始化,也叫做对象的延时加载  
 Single类进内存时,对象还没有存在,只有调用了getInstance()方法时,才建立对象  
  懒汉式在多线程中会出不安全 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值