单例设计模式

单例设计模式的目的是为了保证只创建了一个实例,分为懒汉式和饿汉式。

如何保证只创建一个实例:

第一步:构造方法私有化;

第二步:自己本身提供一个对象(懒汉式在调用getInstance方法时才会new对象,所以比较懒,饿汉式在类加载时就创建对象了,所以是饿的);

第三步:提供静态方法getInstance()让外部可以通过类名.getInstance()直接获取对象(因为构造方法私有,外界创建不了该类的对象,只有将该方法定义为静态的)

//懒汉式:

class ESingleton {
private ESingleton(){}//第一步
static ESingleton s1 = null;//第二步(和饿汉式的区别在这)
static ESingleton getInstance(){//第三步
if (s1 == null) {
s1 = new ESingleton();
}
return s1;
}
void getInfo(){
System.out.println("s1");
}
}

//饿汉式:

class SSingleton {
private SSingleton(){}//第一步
static SSingleton s2 = new SSingleton();//第二步
static SSingleton getInstance(){//第三步
return s2;
}
void getInfo(){
System.out.println("s2");
}
}

//测试类:

public class SingletonTest {
public static void main(String[] args) {
ESingleton.getInstance().getInfo();
SSingleton.getInstance().getInfo();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值