首页 > 编程语言 > 详细

java设计模式之单例设计模式和多例设计模式

时间:2017-08-10 19:17:14      阅读:215      评论:0      收藏:0      [点我收藏+]

单例设计模式:构造方法私有化,在类的内部定义static属性和方法,利用static方法来取得本类的实例化对象;无论外部产生多少个实例化对象,本质上只有一个实例化对象

饿汉式单例设计

class Singleton{
    private static final Singleton INSTANCE = new Singleton();//产生一个实例化对象
    private Singleton(){}//封装构造方法
    public static Singleton getInstance(){
        return INSTANCE;//取得实例化对象
    }
    public void print(){
        System.out.print("hello word");
    }
}
public class Test{
    public static void main(String args[]){
        Singleton s = Singleton.getInstance();//无论调用多少次getInstance()方法,产生的实例化对象都是相同的
        s.print();
    }
}

懒汉式设计模式

class Singleton{
    private static final Singleton INSTANCE;//定义一个未实例化的本类对象
    private Singleton(){}//封装构造方法
    public static Singleton getInstance(){
        if(INSTANCE == null){  
            INSTANCE = new Singleton();
        }
        return INSTANCE;//取得实例化对象
    }
    public void print(){
        System.out.print("hello word");
    }
}
public class Test{
    public static void main(String args[]){
        Singleton s = Singleton.getInstance();//无论调用多少次getInstance()方法,产生的实例化对象都是相同的
        s.print();
    }
}

多例设计模式:构造方法私有化,产生特定个数对象

class Sex{
    private String sex;
    private static final Sex MAN = new Sex("男");
    private static final Sex WOMAN = new Sex("女");
    private Sex(String sex){
        this.sex = sex;
    }
    public static Sex getInstance(int ch){
        switch(ch){
            case 1:
                return MAN;
            case 2:
                return WOMAN;
            default:
                return null;
        }
    }
    public String toString(){
        return sex;
    }
}
public class Test{
    public static void main(String args[]){
        Sex s = Sex.getInstance(1);
        System.out.println(s);
    }
}

 

java设计模式之单例设计模式和多例设计模式

原文:http://www.cnblogs.com/hu1056043921/p/7340656.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!