单例模式的两种实现方法

单例模式的两种实现方法

饿汉式

package com.atguigu.java2;
/*
 * 单例设计模式
 * 所谓类的单例设计模式,就是采取一定的方法保证
 */
public class SingletonTest1 {
    public static void main(String[] args) {
        Bank bank1 = Bank.getInstance();
        Bank bank2 = Bank.getInstance();
        System.out.println(bank1 == bank2);
    }
}
//饿汉式
class Bank{
    //1.私有化类的构造器
    private Bank() {

    }
    //2.内部创建类的对象
    private static Bank instance = new Bank();

    //3.提供公共的静态方法,返回类的对象
    public static Bank getInstance() {
        return instance;
    }

}

懒汉式

package com.atguigu.java2;
/*
 * 单例模式的懒汉式实现
 * 
 */
public class SingletonTest2 {
    public static void main(String[] args) {
        Order order1 = Order.getIntance();
        Order order2 = Order.getIntance();
        System.out.println(order1 == order2);
    }
}
class Order{
    //1.私有化类的构造器
    private Order() {

    }
    //2.声明当前类对象,没有初始化
    private static Order instance = null;
    //3.声明public、static的返回当前类对象的方法
    public static Order getIntance() {
        if ( instance == null ) {
            instance = new Order();
        }
        return instance;    
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-23 14:22
点赞 评论 收藏
分享
昨天 13:42
门头沟学院 Java
点赞 评论 收藏
分享
05-27 14:57
西北大学 golang
强大的社畜在走神:27届真不用急,可以搞点项目、竞赛再沉淀沉淀,我大二的时候还在天天打游戏呢
投递华为等公司10个岗位
点赞 评论 收藏
分享
07-24 13:43
门头沟学院 Java
longerluck...:我猜说的是“你真**是个天才”
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务