《“唯我独尊”之单例模式》

《“唯我独尊”之单例模式》

所谓设计模式,即为一种套路,一种成功经验。
所以要成为一名成功的“搬砖”人士,套路必不可少。
在此,将简述Java中的套路之一:单例模式


@1.何为单例模式?
1)一种创建模式(与创建对象相关)
   2)设计一种规则,让某个类的对象在外界只能获得独一份。
       (充满智慧的心机Boy)
@2.单例应用场合?(只需要一个对象的场合)
   1)池对象的设计
   2)如:任务管理器对象(其界面只能打开一个)
@3.单例模式设计?
   1)构造方法私有(外界不能直接构建对象)
 2)提供静态方法访问单例对象

 

action
/*方案一/
class Singleton01 {
private Singleton01() {}
private static Singleton01 instance;
/使用的对象锁为Singleton01.class/
public static Singleton01 getInstance() {
if(instance == null) {
instance = new Singleton01();
}
return instance;
}
public void show() {}
}

/*方案二/
class Singleton02 {//懒汉单例(大对象,稀少用)
private Singleton02() {}
private static Singleton02 instance;
public static Singleton02 getInstance() {
if(instance == null) {
synchronized (Singleton02.class) {
if(instance == null) {
instance = new Singleton02();
}
}
}
return instance;
}
public void show() {}
}

/*方案三/
class Singleton03 {//饿汉单例(小对象,频繁用)
private Singleton03() {}
/类加载时初始化此属性/
private static Singleton03 instance = new Singleton03();
public static Singleton03 getInstance() {
return instance;
}
public static void display() {}
public void show() {}
}

/*方案四/
class Singleton04 {
private Singleton04() {}
/*采用此内部类延迟Singleton04对象的创建,何时需要何时创建,
* 是Singleton03此方案一种优化*/
private static class Inner {
static Singleton04 instance = new Singleton04();
}
public static Singleton04 getInstance() {
return Inner.instance;
}
public static void display() {}
public void show() {}
}

/*方案五/
enum Singleton05 {//特殊的类型,枚举,Singleton05.class
instance;//对象(类加载时创建)
public void show() {}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值