欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java Singleton(Java单例设计模式),

来源: javaer 分享于  点击 24463 次 点评:18

Java Singleton(Java单例设计模式),


//手机 请上下左右 滑动屏幕 观看更全 !

//package Main;

//单例设计模式和多例设计模式(升级版看enumDemo类(枚举) )

/**
 * @SaySomething(我觉得我应该说点什么的):
 *      :单例模式和多例模式就是控制实例化对象产生的个数,如果单例模式实例在系统中经常被用到,
 *      饿汉式是一个不错的选择,反之如果单例模式在系统中会很少用到或者几乎不会用到,那么懒汉式是一个不错的选择  。
 *      -懒汉式:在程序启动或单例模式类被加载的时候,单例模式实例就已经被创建。
 *      -饿汉式:当程序第一次访问单例模式实例时才进行创建。
 *      -枚举类一般存的是类对象
 * @Attention(注意):
 * @time(时间):-2019/04/29
 * @role(谁):-东方神祇(杨)
 *
 * @modify(修改)-:
 * -@time:
 * -@role:
 */

public class Singleton {
    public static void main(String[] args) {

        //单例
        SingletonDemo Instance = null ;
        Instance = SingletonDemo.getInstance() ;
        Instance.print();
        SingletonDemo Instance1 = SingletonDemo.getInstance() ;
        Instance1.print() ;
        //如果一下两个对象对比皆为true则表示为同一共用对象,并没有创建新对象
        System.out.println(Instance==Instance) ; //如果为true则表两个对象为同一内存地址
        System.out.println(Instance.equals(Instance1)) ;//如果为true则表两个对象内容一样

        //多例
        MoreCaseDemo mcd = null ;
        MoreCaseDemo mcd1 = null ;
        MoreCaseDemo mcd2 = null ;
        mcd=MoreCaseDemo.sgtMoreCasseDemo("好山") ;
        mcd1=MoreCaseDemo.sgtMoreCasseDemo("好水") ;
        mcd2=MoreCaseDemo.sgtMoreCasseDemo("好风光") ;
        System.out.println(mcd.toString()) ;
        System.out.println(mcd1.toString()) ;
        System.out.println(mcd2.toString()) ;
        System.out.println(mcd.equals(mcd2)) ;
        System.out.println(mcd.toString().equals(mcd2.toString())) ;

    }
}

class SingletonDemo{
    private SingletonDemo(){}
    private static final SingletonDemo INSTANCE = new SingletonDemo() ;
   public static SingletonDemo getInstance(){
        return INSTANCE ;
    }
    public void print(){
        System.out.println("杨木发好帅!");
    }
}


//多例设计模式
class MoreCaseDemo{
    private String title ;
    private MoreCaseDemo(String title){
        this.title = title ;
    }
    private static final MoreCaseDemo MCD = new MoreCaseDemo("好山") ;
    private static final MoreCaseDemo MCD1 = new MoreCaseDemo("好水") ;
    private static final MoreCaseDemo MCD2 = new MoreCaseDemo("好风光") ;
    private static final MoreCaseDemo MCD3 = new MoreCaseDemo("NULL!") ;
    public static MoreCaseDemo sgtMoreCasseDemo(String attribute){
        switch(attribute){
            case "好山" :return MCD ;
            case "好水" :return MCD1 ;
            case "好风光" :return MCD2 ;
            default: return  MCD3 ;
        }
    }
    public String toString(){
        return this.title ;
    }
}

 

相关文章

    暂无相关文章
相关栏目:

用户点评