GoF 23个经典的设计模式05--创建模式之单例模式(未完代续)

来源:互联网 发布:阿里云合作伙伴有哪些 编辑:程序博客网 时间:2024/04/19 08:54
单例模式用得比较多,可能大家都会比较熟悉。
单例模式:一个对象只产生一个实例,并提供一个全局的入口方法。
Ensure a class has only one instance, and provide a global point of access to it. [GoF, p127]

单例又分为饿汉和懒汉方式,我觉得他们效果和性能差不多,所以不想多说,只实现比较简单的懒汉方式,容易理解。

对象先自己创建,再提供一个入口方法提供调用
singleton_dcd.

UML整理
gof5


Client
package org.benewu.patterns.singleton;

public class Client {

    
public static void main(String[] args) {
        Singleton singletonA 
= Singleton.getInstance();
        Singleton singletonB 
= Singleton.getInstance();
        
        System.out.println(singletonA);
        System.out.println(singletonB);
    }

}


在创建一个给自己提供实例的类
package org.benewu.patterns.singleton;

public class Singleton {

    
private static Singleton singleton = new Singleton ();
    
private Singleton (){

    }

    
    
public static Singleton  getInstance(){
        
return singleton;
    }

}



再说懒汉和饿汉,从效率分析,饿汉效率比较高,实现上看懒汉好。如果有兴趣可以google或baidu一下吧。
原创粉丝点击