• 二十三中设计模式之:单例模式


    单例模式通常用于保证系统中一个类只有一个单例。

    单例模式分为三种:懒汉式、饿汉式、双重锁模式

    例1:懒汉式(会产生线程安全问题,需要使用synchronized关键字进行加锁,只有在使用单例模式的时候,实例对象才会被创建)

    public class Singleton{

      //1.构造方法私有化

      private Singleton(){

      }

        //2.声明私有化实例

      private static Singleton singleton = null;

      //3.提供对外的公开的方法

      public synchronized static Singleton getSingleton(){

        if(singleton==null){

          singleton = new Singleton();

          //return singleton;

        }

        return singleton;

      }

    }

    例2:饿汉式(不会产生线程安全问题,但是在程序启动或单例模式类被加载的时候,实例对象就已经被创建。)

      public class Singleton{

        //1.构造方法私有化

        priavte Singleton(){ 

        }

        //2.声明类的实例

        private static Singleton singleton = new Singleton();

        //3.创建公开的方法

        public static Singleton getSingleton(){

          return singleton;

        }    

      }

    例3:双重锁模式

      public class Singleton {

        //1.构造方法私有化

        private Singleton(){

        }

        //2.声明类的实例

        private static Singleton singleton = null;

        //3.创建公开的方法

        public static Singleton getSingleton(){

          synchronized(Singleton.class){

            if(singleton==null){

              singleton = new Singleton();

            }

          }

        return singleton;

        }

      }

    懒汉式和饿汉式的使用场景:当经常使用单例模式的时候,使用饿汉式;不经常使用的时候使用懒汉式。

  • 相关阅读:
    Android SwitchButton(滑动开关)
    创建您自己的Maven模板
    Bag标签成一条线的代码来实现中国字
    rabbitmq的java简单的实现
    【七】注入框架RoboGuice使用:(Your First Custom Binding)
    Sqlmap渗透测试是常用语句
    Android NOtification 使用(震动 闪屏 铃声)
    Android loader 详解
    Android实现获取本机中所有图片
    Android保存图片到系统图库
  • 原文地址:https://www.cnblogs.com/qadyyj/p/5631961.html
Copyright © 2020-2023  润新知