博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

java单例模式和双例模式

Posted on 2016-07-08 15:20  绝交  阅读(2197)  评论(2编辑  收藏  举报

今天朋友找我给做道题,双例模式,我是没听说过,都说是单例模式和多例模式,

也不知道双例模式什么时候用,就简单写了一个案例,不知道对不对,个人感觉蛮对的,双例就是单例+单例,废话不说了!!!!

/*
*单例模式
调用方法
Singleton singleton = Singleton.getSingleton();
singleton.getValue("我是单例模式");
*/
 
public class Singleton {
    private static Singleton  singleton = null;
    public static Singleton getSingleton(){
        if(singleton==null){
            return singleton = new Singleton();
        }else{
            return singleton;
        }
    }
    
    public String getValue(String name){
        return name;
    }
}

/*
*双例模式,如果是三例模式就吧len参数改成3
调用方法
Doubleton doubleton = Doubleton.getDoubleton();
doubleton.getValue("我有两个实例!");
*/
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class Doubleton {

    private static List<Doubleton> list = new ArrayList<Doubleton>();
    private static int len = 2;
    static{
        for(int i=0;i<len;i++){
            list.add(new Doubleton());
        }
    }
    public static Doubleton getDoubleton (){
        Random random = new Random();
        int current = random.nextInt(len);
        return (Doubleton)list.get(current);
    }
    

    public String getValue(String name){
        return name;
    }
}

希望大牛们给指点指点对不对,在此感谢!!!!