• 单例设计模式


    Day08_SHJavaTraing_4-13-2017

    单例设计模式
    1.饿汉式单例设计模式

     1 /*
     2 饿汉式单例设计模式
     3 */
     4 class HurrySingletonDemo
     5 {
     6     //1.私有化构造函数,阻止外部直接实例化本类对象
     7     private HurrySingletonDemo(){
     8     
     9     }
    10     //2.在本类中创建唯一实例
    11     private static HurrySingletonDemo hsd = new HurrySingletonDemo();
    12     //3.对外提供公开的访问方法,获取这个唯一实例
    13     public static HurrySingletonDemo getInstance(){
    14         return hsd;
    15     }
    16 }

    2.懒汉式单例设计模式

     1 /*
     2 懒汉式单例设计模式
     3 */
     4 class LazySingletonDemo
     5 {
     6     //1.私有化构造函数
     7     private LazySingletonDemo(){
     8     
     9     }
    10 
    11     //2.声明本类的一个对象
    12     private static LazySingletonDemo lsd;//不用给lsd赋初始值,因为引用类型数据的默认值为null
    13 
    14     //3.对外提供公开的访问方法
    15     public static LazySingletonDemo getInstance(){
    16 
    17         if(lsd == null){ //第一次调用lsd时才创建对象(此时lsd为null)
    18             lsd = new LazySingletonDemo();//创建唯一的实例
    19     }
    20 
    21     return lsd;
    22 }
    23 }

    3.饿汉式单例设计模式和懒汉式单例设计模式对比
        3.1饿汉式:在加载类的同时就创建了这个类的唯一实例
            ①好处:可保证这个类的实例的唯一性
            ②弊端:如果只是使用这个类,但是暂时不需要它的对象,也会创建唯一实例,造成内存的浪费
        3.2懒汉式:在第一次调用获取实例的方法时才创建对象
            ①好处:第一次调用获取实例的方法时才创建对象,可以避免内存的浪费
            ②弊端:多线程环境下不能保证实例的唯一性

  • 相关阅读:
    Directx11教程(63) tessellation学习(5)
    OpenCL 学习step by step (1) 安装AMD OpenCL APP
    Directx11教程(62) tessellation学习(4)
    Directx11教程(61) tessellation学习(3)
    Notes 和 Domino 已知限制
    asp.net中的WebApplication和WebSite
    平淡的2007
    TinyMCE与Domino集成
    jOOQ 2.6.0 发布,Java的ORM框架
    bandwidth 0.32f 发布,内存带宽测试工具
  • 原文地址:https://www.cnblogs.com/EzraOholiabXue/p/Day08_SHJavaTraing_4-13-2017_01.html
Copyright © 2020-2023  润新知