从简单案例了解设计模式--单例设计模式

从简单案例了解设计模式–单例设计模式

单例设计模式是java设计模式中最简单的一种设计模式,单例设计模式的目的就是让应用的全局目标类只有一个实例对象。

首先构造方法私有话,来确保单例:

	// 构造方法私有化
    private HungrySingleton() {}

单例模式分类

单例模式分为两种一种是饿汉式,一种是懒汉式。

饿汉式

将类用static修饰并创建实例化对象,实现在类加载的时候去创建实例化对象。

具体代码如下:
public class HungrySingleton {

    // 构造方法私有化
    private HungrySingleton() {}

    // 将自身实例化对象设置为一个属性,并用static、final修饰
    private static final HungrySingleton instance = new HungrySingleton();

    // 静态方法返回该实例
    public static HungrySingleton getInstance() {
        return instance;
    }
}

懒汉式

static修饰实例化对象类的声明,再去调用方法的时候创建实例化对象,懒汉式存在线程安全的问题所以通过synchronized关键字实现同步。并加以判断如果有实例化对象存在就不去创建,如果没有在进行实例化。

public class LazySingleton {

    // 将自身实例化对象设置为一个属性,并用static修饰
    private static LazySingleton instance;

    // 构造方法私有化
    private LazySingleton() {}

    // 静态方法返回该实例,加synchronized关键字实现同步
    public static synchronized LazySingleton getInstance() {
        if(instance == null) {
            instance = new LazySingleton();
        }
        return instance;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值