码迷,mamicode.com
首页 > 其他好文 > 详细

单例模式实现方法之懒汉式、饿汉式

时间:2018-04-08 21:19:59      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:hung   程序设计   项目   就是   使用   new   开发   不能   共享   

Singleton 单例模式是一种经常在项目开发中使用的程序设计模式,它用于创建一个全局共享的实例对象。该实例对象在整个应用程序中只有一个,不会出现更多的该实例对象。

实现原理就是将类的构造方法私有化,即使用private修饰符来修饰构造方法,这样外部就不能使用构造方法创建对象了,本类内部还是能够创建对象的,所以,可以创建一个本类类型的成员变量来保存本类的唯一对象,然后提供属性访问器方法获取这个唯一的实例,但是每次获取的都是同一个对象,而不是重新创建的。

 接下来将介绍两种比较常用方法来实现单例模式。

一.

懒汉式:当程序第一次访问单例模式实例时才进行创建 。

public class Lazy {
  public static Lazy instance = null; //本类的唯一实例
  private Lazy() {
    //构造方法私有化
  }
  public synchronized static Lazy getInstance() {      //获取唯一实例
    if(instance==null)    instance = new Lazy();
  return instance;  
  }
}

 

二.

饿汉式:在程序启动或单例模式类被加载的时候,单例模式实例就已经被创建。

public class Hungry {
    private static Hungry instance = new Hungry();//本类的唯一实例
    private Hungry() {
        //构造方法私有化
    }
    public static Hungry getInstance() {    //获取唯一实例
    return instance;
    }
}    

 

如何选择这两种方法呢?

如果单例模式实例在系统中经常会被用到,饿汉式式一个不错的选择。

如果单例模式在系统中会很少用到或者几乎不会用到,那么懒汉式是一个不错的选择。

单例模式实现方法之懒汉式、饿汉式

标签:hung   程序设计   项目   就是   使用   new   开发   不能   共享   

原文地址:https://www.cnblogs.com/czsy/p/8747117.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!