zoukankan      html  css  js  c++  java
  • 1.9 23种设计模式之单例模式详情 > 我的程序猿之路:第九章

    1. 概述:确保在一个类中只有一个实例,而且自行实例化并且能对整个系统提供实例对象 -------单例;

    2. 类图:

    3. 描述:私有的静态实例化对象;

               私有的构造函数;

              公有的静态方法;

              单例模式根据 "实例化对象" 的不同,分为 "饿汉式" 和 "懒汉式";

              饿汉式:单例类被加载的时候,就实例化一个对象交给自己引用。

              懒汉式:只有加载这个单例类,然后调用这个类中方法的时候,才会实例化对象。

    4. 代码<不插入了>:

      1:饿汉式
           public class Singleton{
                private static Singleton s = new Singleton();
                private Singleton(){ }
                public static Singleton getSingleton(){
                   return Singleton;
            }
     }

       2:懒汉式
         public class Singleton{
              private static Singleton s;
              private Singleton(){ }
              public static Singleton getSingleton(){
                if( s == null ){
                    s = new Singleton();
                  }
                return Singleton;
           }

    5. 优点:1.一个类中只有一个被实例化的对象,节省内存空间;
                   2.避免了创建销毁对象,提高了性能
                   3.避免了共享资源的多重占用
                   4.可以全局使用

    6. 使用场景:1.需要频繁的实例化对象然后销毁对象。
                          2.创建对象时耗时过多或耗费资源过多,但有经常被用到的对象。
                          3.有状态的工具类对象。
                          4.频繁访问数据库或文件的对象          

  • 相关阅读:
    123457123457#0#-----com.tym.YuErBaiKeTYM--前拼后广--育儿百科
    123457123456#0#-----com.tym.XueYingYu01--前拼后广--小学英语tym
    123457123456#0#-----com.cym.shuXue02--前拼后广--开心学数学
    Spring事务失效的2种情况
    算法之排序
    JDK、Spring和Mybatis中使用到的设计模式
    MyBatis中#{}和${}的区别详解
    Redis为什么这么快
    java多线程之ScheduleThreadPoolExecutor
    java多线程之ThreadPoolExecutor
  • 原文地址:https://www.cnblogs.com/fanyuyi-boke/p/qiao_duo_shao_nian_dai_ma_neng_ba_shou_zhi_mo_ping9.html
Copyright © 2011-2022 走看看