首页 > 技术文章 > 设计模式之单例

hyiam 2014-03-29 21:16 原文

 

  单例模式作为一个最简单的设计模式,是自己在第一次开始设计模式的过程中唯一明白了一些的设计模式,也是自己很长有一段时间唯一能够说出一个所以然的设计模式。

  单例模式是通过一私有的构造方法实现的,它分为:懒汉式和饿汉式两种,区别是一个是不管是否被调用,先把对象New出来,调用就提供;一个是先不建对象,被调用的时候,判断对象是不是已经存在了,没有就New,存在就直接提供。

  懒汉式:

  Class Singleton(){

    private static singleton = new Singleton();

    private Singleton(){}

    public Singleton getSingleton(){

      return singleton;

    }

  }

  饿汉式:

  Class Singleton(){

    private static singleton = null;

    private Singleton(){}

    public Singleton getSingleton(){

      if(singleton != null){

        return singleton;

      }else{

        singleton = new Singleton();

        return singleton;

      }

    }

  }

  单例模式的使用场景:

  1. 有频繁的创建销毁的对象,可以考虑使用了单例

  2. 对象创建非常耗费时间或资源,但是有经常使用的对象。

  在java中,饿汉式要优于懒汉式,但是在C++中懒汉式优于饿汉式。

 

推荐阅读