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

    }
  • 相关阅读:
    最小化x11 debian
    chroot后 运行xeyes Error: Can't open display: :0.0
    std::bind1st和std::bind2nd
    bind1nd,not1,compose1等用法
    python中*和**的参数
    QT静态编译
    Qt中QEvent和信号槽的区别
    JSON文件内容加注释的几种方法
    C语言--#、##、__VA_ARGS__ 和##__VA_ARGS__ 的使用
    QT正则表达式
  • 原文地址:https://www.cnblogs.com/guangxiang/p/12971168.html
Copyright © 2011-2022 走看看