首页 java设计模式 java设计模式学习-单态模式(实例)

java设计模式学习-单态模式(实例)

package com.yq1012.创建型模式.单态模式; public class Singleton { //懒汉…




package com.yq1012.创建型模式.单态模式;
public class Singleton {
    //懒汉式单例类
	//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
    //使用时生成实例,提高了效率!
    private static Singleton sing;

    private Singleton() {

    }

    public static Singleton getInstance() {

        if (sing == null) {
            sing = new Singleton();
        }
        return sing;
    }
}


package com.yq1012.创建型模式.单态模式;
public class Singleton1 {
    //饿汉式单例类
    private static Singleton1 sing =new Singleton1();

    private Singleton1() {

    }

    public static Singleton1 getInstance() {
        return sing;
    }
}


package com.yq1012.创建型模式.单态模式;
public class Test {

    public static void main(String[] args) {
        Singleton sing = Singleton.getInstance();
        Singleton sing2 = Singleton.getInstance();

        System.out.println(sing);
        System.out.println(sing2);
    }
}


package com.yq1012.创建型模式.单态模式;
public class Test1 {

    public static void main(String[] args) {
        Singleton sing = Singleton.getInstance();
        Singleton sing2 = Singleton.getInstance();

        System.out.println(sing);
        System.out.println(sing2);
    }
}

 

饿汉式和懒汉式区别

这两种乍看上去非常相似,其实是有区别的,主要两点

1、线程安全:

饿汉式是线程安全的,可以直接用于多线程而不会出现问题,懒汉式就不行,它是线程不安全的,如果用于多线程可能会被实例化多次,失去单例的作用。

如果要把懒汉式用于多线程,有两种方式保证安全性,一种是在getInstance方法上加同步,另一种是在使用该单例方法前后加双锁。

2、资源加载:

饿汉式在类创建的同时就实例化一个静态对象出来,不管之后会不会使用这个单例,会占据一定的内存,相应的在调用时速度也会更快,

而懒汉式顾名思义,会延迟加载,在第一次使用该单例的时候才会实例化对象出来,第一次掉用时要初始化,如果要做的工作比较多,性能上会有些延迟,之后就和饿汉式一样了。

http://blog.csdn.net/jason0539/article/details/22568865

 

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

为您推荐

行为型 Iterator,迭代器模式

行为型 Iterator,迭代器模式

Iterator,迭代器模式:提供一个方法顺序访问一个聚合对象的各个元素,而又不需要暴露该对象的内部表示。 ITERAT...
行为型 Interpreter,解释器模式

行为型 Interpreter,解释器模式

Interpreter,解释器模式:给定一个语言,定义他的文法的一个表示,并定义一个解释器,这个解释器使用该表示来解释语...
结构型 Proxy,代理模式

结构型 Proxy,代理模式

Proxy,代理模式:为其他对象提供一种代理以控制对这个对象的访问 PROXY 跟MM在网上聊天,一开头总是“hi,你好...
结构型 Flyweight,享元模式

结构型 Flyweight,享元模式

结构型 Flyweight,享元模式 FLYWEIGHT 每天跟MM发短信,手指都累死了,最近买了个新手机,可以把一些常...
结构型  外观模式, Facade

结构型 外观模式, Facade

外观模式, Facade FACADE 我有一个专业的Nikon相机,我就喜欢自己手动调光圈、快门,这样照出来的照片才专...
返回顶部