ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

单例模式

2019-05-26 17:48:17  阅读:161  来源: 互联网

标签:BasicSingleTon private LazyBasicSingleTon static 模式 单例 本类


单例设计模式:保证一个类在内存中只有一个对象。

单例模式的从实现步骤上来讲,分为三步:

  1. 构造方法私有,保证无法从外部通过 new 的方式创建对象。
  2. 对外提供获取该类实例的静态方法
  3. 类的内部创建该类的对象,通过第 2 步的静态方法返回

单例模式包括饿汉和懒汉,饿汉不安全。

饿汉单例设计模式:
        1. 私有化构造函数。
        2. 声明本类的引用类型变量并且指向本类的对象,(private static)
        3. 提供一个公共静态的方法获取本类对象。 
    实现:

public class BasicSingleTon {

    //创建唯一实例
    private static final BasicSingleTon instance = new BasicSingleTon();

    //第二部暴露静态方法返回唯一实例
    public static BasicSingleTon getInstance() {
        return instance;
    }

    //第一步构造方法私有
    private BasicSingleTon() {
    }
}


懒汉单例设计模式:
        1. 私有化构造函数。
        2.  声明本类的引用类型变量,但是不要创建对象。
        3. 提供一个公共静态的方法获取本类对象,获取之前先判断是否已经创建了本类的对象,
        如果没有创建,创建再返回。如果已经创建了,那么直接访问即可。

实现:

public class LazyBasicSingleTon {

    private static LazyBasicSingleTon singleTon = null;

    public static LazyBasicSingleTon getInstance() {
        //延迟初始化 在第一次调用 getInstance 的时候创建对象
        if (singleTon == null) {
            singleTon = new LazyBasicSingleTon();
        }

        return singleTon;
    }

    private LazyBasicSingleTon() {
    }
}

 

标签:BasicSingleTon,private,LazyBasicSingleTon,static,模式,单例,本类
来源: https://blog.csdn.net/qq_35385687/article/details/90578061

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有