zoukankan      html  css  js  c++  java
  • 单例设计模式

    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懒汉式:在第一次调用获取实例的方法时才创建对象
            ①好处:第一次调用获取实例的方法时才创建对象,可以避免内存的浪费
            ②弊端:多线程环境下不能保证实例的唯一性

  • 相关阅读:
    SharePoint 2013 列表启用搜索
    SharePoint 2013 InfoPath 无法保存下列表单
    SharePoint 2013 图文开发系列之定义站点模板
    SharePoint 2013 图文开发系列之创建内容类型
    SharePoint 2013 图文开发系列之网站栏
    Linux的PCI驱动分析
    uCOS-ii笔记
    RTOS系统与Linux系统的区别
    Arduino+GPRS 的环境监控方案
    可视化机器学习工具软件的比较分析研究
  • 原文地址:https://www.cnblogs.com/EzraOholiabXue/p/Day08_SHJavaTraing_4-13-2017_01.html
Copyright © 2011-2022 走看看