zoukankan      html  css  js  c++  java
  • 设计模式-单例模式实现过程案例

    设计思路:1.创建静态私有对象;2.构造方法私有化;3.静态公有的对象地址方法

    一.

    /**
    * @author jiagx
    * @description 单例模式-线程不安全版本
    * @date 2020/5/27 9:54
    */
    public class Singleton {

    private static Singleton singleton;

    private Singleton(){
    };

    public static Singleton getInstance(){
    if (singleton==null){
    singleton=new Singleton();
    }
    return singleton;
    }

    }


    二.
    /**
    * @author jiagx
    * @description 单例模式-同步锁单例模式
    * @date 2020/5/27 9:58
    */
    public class SingletonSyn {
    private static SingletonSyn singleton;

    private SingletonSyn(){};

    public static synchronized SingletonSyn getInstance(){
    synchronized (SingletonSyn.class){
    if (singleton==null){
    singleton=new SingletonSyn();
    }
    }
    return singleton;
    }
    }


    三.
    /**
    * @author jiagx
    * @description 单例模式-双层校验锁机制的同步锁单例模式
    * @date 2020/5/27 10:12
    */
    public class SingletonSyn2 {

    private static SingletonSyn2 singletonSyn2;

    private SingletonSyn2(){

    }


    public static synchronized SingletonSyn2 getInstance(){

    if (singletonSyn2==null){
    synchronized (SingletonSyn2.class){
    if (singletonSyn2==null){
    singletonSyn2=new SingletonSyn2();
    }
    }
    }
    return singletonSyn2;
    }
    }


    四.
    /**
    * @author jiagx
    * @description 单例模式-无锁线程安全单例模式,最优秀的单例模式
    * @date 2020/5/27 10:38
    */
    public class SingletonSynNoLock {

    private final static SingletonSynNoLock singletonSynNoLock = new SingletonSynNoLock();

    private SingletonSynNoLock(){};

    @Synchronized
    public static SingletonSynNoLock getInstance(){
    return singletonSynNoLock;
    }

    }
  • 相关阅读:
    微信小程序 选择图片 并上传到服务器
    微信小程序 setData
    python--字典排序
    python--csv文件读写
    机器学习实战笔记--AdaBoost(实例代码)
    机器学习实战笔记--朴素贝叶斯(实例代码)
    python继承 super()
    机器学习实战笔记—决策树(代码讲解)
    java的基本认识
    Delphi制作DLL
  • 原文地址:https://www.cnblogs.com/guangxiang/p/12971168.html
Copyright © 2011-2022 走看看