设计模式单例模式(SingletonPattern)

核心模块:

所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git

使用场景:只需要一个实例对象,需要频繁创造销毁的对象,创建时耗时过长的对象,数据库或者文件对象;
优点:节约系统资源;
缺点:没有抽象层扩展有困难,类职责过重违背单一职责原则;
注意:

1,建造者模式是将一个复杂对象的创建过程给封装起来,而不需要关心具体创建过程;


/**
 * Created by tory on 2018/1/11.
 * 单例模式
 */
public class SingletonPattern {
    public static void main(String[] args) {
        PushManager.getInstance().print();
    }
}

//单例模式饿汉
//class PushManager {
//    private static PushManager instance = new PushManager();
//
//    private PushManager() {
//    }
//
//    public static PushManager getInstance() {
//        return instance;
//    }
//public void print(){
//    System.out.println("print()");
//}
//}

//单例模式线程安全,并发
//class PushManager {
//    private volatile static PushManager instance;
//
//    private PushManager() {
//    }
//
//    public static PushManager getInstance() {
//        if (null == instance) {
//            synchronized (PushManager.class) {
//                if (null == instance) {
//                    instance = new PushManager();
//                }
//            }
//        }
//        return instance;
//    }
//public void print(){
//    System.out.println("print()");
//}
//}

//单例模式,方式三,在内部静态类中加载
class PushManager {
    static class InstanceHolder {
        //静态内部类的加载顺序和内部类一样,使用到的时候才加载
        static PushManager INSTANCE = new PushManager();
    }

    private PushManager() {
    }

    public static PushManager getInstance() {
        return InstanceHolder.INSTANCE;
    }

    public void print() {
        System.out.println("print()");
    }
}

内容打印
Hello World!
print()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值