简单理解单例模式

Q:什么是设计模式?
A : 设计模式是无数程序员前辈在开发程序中不断总结出来针对特定问题的一种解决方案。简单来说就是招式套路,而核心的内功是“高内聚,低耦合”。内功高打出的招式才有威力。
在软件领域,“四人帮”系统地提出了三大类(创建模式,行为模式,组合模式)共23种经典的设计模式,学习设计模式能帮助我们更好地理解他人的代码进行代码重构。

Q:什么是单例模式(Singleton)?
A:确保一个类只有一个实例,并自行实例化向整个系统提供这个实例。
要求:1.私有的构造器(禁止通过new来创建对象);
2.私有的静态类属性;
3.公共的静态获取类对象的方法;
只要满足了上面三个要求,那么这个类就是符合单例设计模式的 类。
按照创建实例的时机不同我们把单例模式细化成了两类:
一 饿汉单例:
在类加载的时候就实例化好对象交给自己的引用。
简单理解:系统自己主动实例化对象。
二 懒汉模式:
在调用获取实例方法的时候才会实例化对象。
简单理解:比较懒要我们自己调用了方法之后才会实例化对象。

Q:单例模式有什么优点?
A:
1.在内存中只有一个对象,节约内存空间
2.可以避免频繁的创建销毁对象,提高性能
3.避免对共享资源的多重占用
4.可以全局访问

Q:请写出一个单例模式的例子
A:1.饿汉单例:

/**
 * @info:单例模式示例(饿汉单例)
 * @author:dy
 * @2016年8月21日
 * 
 */

public class Singleton {

    private static Singleton singleton = new Singleton();

    private Singleton() {
    }

    private static Singleton getSingleton() {
        return singleton;
    }

}

2.懒汉单例


/**
 * @info:单例模式(懒汉单例)
 * @author:dy
 * @2016年8月21日
 * 
 */
public class Singleton2 {

    private static  Singleton2 singleton2;

    private Singleton2() {
    }

    // 只有在调用这个方法的时候才会实例化对象
    private static  Singleton2 getSingleton2() {
        if (singleton2 == null) {
            singleton2 = new Singleton2();
        }
        return singleton2;
    }

}

单例模式作为一种简单常用的设计模式,希望各位才踏进程序员大门的兄弟一定要做到烂熟于心。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值