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

    作为23种设计模式里最简单的设计模式之一,单例模式顾名思义该类只能有一个实例对象,普通的类都是可以直接new 类名()来创建。想要只有一个实例,那就只能由该例创建,如果该例对象已经存在,则无法再创建

    单例模式分为懒汉模式和饿汉模式。懒汉模式是类加载的时候该实例还没有创建,需要手动调用方法创建。

    public class LanhanDanli {
      private static LanhanDanli lanhanDanli=null;
    
        public LanhanDanli() {
        }
        private static LanhanDanli createLanhanDanli(){
            if(lanhanDanli==null){
                lanhanDanli=new LanhanhanDanli();
            }
            return lanhanhanDanli;
        }
    }

    如果编写的是多线程,需要对变量上锁保证线程安全。但是每次访问都要同步资源,非常浪费性能。

    饿汉模式为类加载的时候 该类的实例就已经存在

    public class EhanDanli {
        private static EhanDanli ehanDanli=new EhanDanli();
    
        public EhanDanli() {
        }
        private static  EhanDanli  getEhanDanli(){
            return ehanDanli;
        }
    }

    该线程对象不可改变 所以线程是安全的,且类加载的时候对象就已经存在。

    应用场景:在某个对象需要被共享使用的时候,可以使用该模式来节省内存,比如最常见的数据库连接,上下文等等。

    不和别人一样,不复制只真正理解
  • 相关阅读:
    [leetCode]100.相同的树
    [leetCode]88.合并两个有序数组
    [leetCode]83.删除排序链表中的重复元素
    排序算法总结
    [leetCode]69. x 的平方根
    POJ 1151 Atlantis
    POJ 3468 A Simple Problem with Integers
    SGU 271 Book Pile
    POJ 2970 The lazy programmer
    FZU 2254 英语考试
  • 原文地址:https://www.cnblogs.com/Vinlen/p/12779731.html
Copyright © 2011-2022 走看看