java笔记08 设计模式与单例设计模式


1.      设计模式

设计模式:对某一类问题行之有效的解决方案 GOF

是一种思想

java中有23种设计模式

2.      单例设计模式:解决一类在内存中只存在一个对象

 1、为了卞其他程序建立该类对象,先禁止其他程序建立该类对象

 2、而为了其他程序可以访问该类对象,在本来中自定义一个对象。

 3、提供一些访问方式。

3.      实现方式

1、构造函数私有化

2、创建一个本类对象

3、提供一个方法可以获取到该对象

其他描述方式不变,需要保证内存中只有一个对象的时候,增加上述三步即可。

4.  饿汉式和懒汉式

4.1 饿汉式(更常用,本来就只要一个对象,安全,简单)

 private static Single s=newSingle();

 一进内存就有地址

 

4.2 懒汉式(需要时才提供地址)

private static Single s=null;

调用时延迟加载

多线程时,可能会有问题。需要加同步(synchronized)

5.  代码

饿汉式

class Singleton{
                   private Singleton(){}
                   private static Singleton s=new Singleton();//静态后,要私有化,只能在本类调用
                   public static Singleton getInstance()
                   {
                            return s;//静态方法便于访问,所以对象也要静态化,
                   }
}
 


懒汉式


class Singleton
{
         //私有化构造函数
         private Singleton(){}
         //提供静态实例
         private static Singleton single=null;
         //延迟加载
         public static Singleton getInstance()
         {
                   if(single==null)
                            synchronized(Singleton.class)
                            {
                                     if(single==null)
                                     {
                                               single=new Singleton();
                                     }
                            }
                   return single;
         }
}
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值