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

    }
  • 相关阅读:
    软件设计师经验分享
    数据库设计基本规范
    UEditor上传文件的默认地址修改
    mongoDB简单介绍及安装
    链表中倒数第k个结点
    一入python深似海--对象的属性
    stl--vector 操作实现
    android5.x加入sim1,sim2标识
    leetCode 27.Remove Element (删除元素) 解题思路和方法
    java8新增特性(一)---Lambda表达式
  • 原文地址:https://www.cnblogs.com/guangxiang/p/12971168.html
Copyright © 2011-2022 走看看