• 单例模式--创建型设计模式


    1.饿汉式

      优点:线程安全

      缺点:立即加载

    2.懒汉式

      优点:懒加载

      缺点:线程不安全(可以用双重锁机制来保证线程安全,但是调用效率低)

    3.内部类型单例模式,前两种基本不用,因为这种包含前两种的优点

      优点:1、线程安全,2、懒加载

    代码如下:

    复制代码
    package sington;
    
    public class InnerSing {
    
        private InnerSing(){
        }
    
        public static InnerSing getIntance(){
            return InnerClass.instance;
        }
    
        private static class InnerClass {
            private static InnerSing instance = new InnerSing();
        }
    }
    复制代码

     4、枚举类

      优点:前三种都没法避免使用反射/序列化(即写入硬盘再读取硬盘创建对象)来创建对象,

          而枚举类可以;(其实可以通过构造器代码写:对象非空判断+抛错可以防止反射创建,而重写readResolve()方法可以防止反系列化构造多一个对象)

      缺点:不是懒加载

    代码如下:

    复制代码
    package sington;
    
    public enum EnumSing {
    
        INTANCE;
    
        public void function(){
            System.out.println("具体执行方法");
        }
        public static EnumSing getIntance(){
            return INTANCE;
        }
    }
    复制代码
    欢迎关注我的公众号:“进阶者euj”
  • 相关阅读:
    linux下的进程
    进程间通讯
    const关键字
    关于嵌入式web服务器
    指针
    内存管理(malloc和free的用法)
    关于read和fread
    C库的制作
    C语言考试
    docker 配置阿里云镜像加速
  • 原文地址:https://www.cnblogs.com/yeyongjian/p/8904929.html
Copyright © 2020-2023  润新知