黑马程序员 单例设计模式

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

1,什么是设计模式

设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。

特点:
是问题变得简单化,使复杂简化。

2,单例设计模式

单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。

解决一个类在内存中只存在一个对象
比如对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。

要点:

(a)某个类只能有一个实例

(b)它必须自行创建这个实例

(c)它必须自行向整个系统提供这个实例

具体而言:

(a)单例模式的类只提供私有的构造函数,

(b)类定义中含有一个该类的静态私有对象,

(c)该类提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象

3,饿汉式

类开始加载,就已经建立好对象

//饿汉式  
class Single  
{  
    private Single(){}  
    private static Single s = new Single();  
    public static Single getInstance()  
    {  
        return s;  
    }   
}

4,懒汉式

对象是方法被调用时才初始化,也叫做对象的延时加载

//懒汉式:对象是方法调用时才初始化,也叫做对象的延时加载  
class Single   
{  
    private Single(){}  
    private static Single s =null;  
    public static Single getInstance()  
    {  
        if(s==null)  
        {  
            synchronized(Single.class)  
            {  
                if(s==null)  
                    s = new Single();  
            }  
        }  
        return s;  
    }  
}  
class  SingleDemo  
{  
    public static void main(String[] args)   
    {  
        Single ss = Single.getInstance();  
    }  
} 

5,懒汉式与饿汉式的一些特点

(a)懒汉式的特点在于实例的延时加载

(b)懒汉式的延迟加载:如果多线程访问时,会出现安全问题

(c)出现了安全问题时,可以加同步来解决,而加同步的方式有两种,同步代码快和同步函数都行,但是稍微有些低效,用双重判断的形式可以解决效率的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值