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;
        }
    }

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

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

    不和别人一样,不复制只真正理解
  • 相关阅读:
    Laravel5.0学习--03 Artisan命令
    yar框架使用笔记
    MySQL外键之级联
    笛卡尔积
    PHP钩子机制
    CentOS安装PHP7+Nginx+MySQL
    Linux压缩命令
    Git命令汇总
    使用List把一个长字符串分解成若干个短字符串
    Adb connection Error:远程主机强迫关闭了一个现有的连接
  • 原文地址:https://www.cnblogs.com/Vinlen/p/12779731.html
Copyright © 2011-2022 走看看