JAVA-设计模式

单例模式

设计思路

  • 私有化构造方法
  • 提供一个共有的静态方法,让外界获取到自己的对象
  • 创建一个私有静态变量,用来保存唯一的对象

根据创建时机的不同

  1. 饿汉模式:类加载时创建对象
  2. 懒汉模式:第一次调用获取对象的方法时创建对象

饿汉模式

类一加载就创建对象

package mode;

public class Danli {
    private static Danli dan = new Danli();
    private Danli() {

    }

    public static Danli getDanli() {
        return dan;
    }

}
package mode;

public class TestDan {
    public static void main(String[] args) {
        Danli danli = Danli.getDanli();
        System.out.println(danli);
    }
}

懒汉模式

第一次调用的时候,创建对象

package mode;

public class Danli {
    private static Danli dan;
    private Danli() {

    }

    public static Danli getDanli() {
        if(dan == null){
            dan = new Danli();
        }
        return dan;
    }

}
package mode;

public class TestDan {
    public static void main(String[] args) {
        Danli danli = Danli.getDanli();
        System.out.println(danli);
    }
}

工厂模式

package mode;

public class Factory {

    public class One {

    }

    public class Two {

    }

    public Object create(int type) {
        switch (type) {
            case 1:
                return new One();
            case 2:
                return new Two();
        }

        return new Factory();
    }
}
package mode;

public class TestFactory {
    public static void main(String[] args) {
        Factory factory = new Factory();
        Object o1 = factory.create(1);
        System.out.println(o1);
        Object o = factory.create(2);
        System.out.println(o);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值