zoukankan      html  css  js  c++  java
  • 设计模式二:单例模式

    一.什么是单例模式
          单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问.
    二.单例模式要点
         以下三点:一是单例模式的类只提供私有的构造函数,二是类定义中含有一个该类的静态私有对象,三是该类提供了一个静态的共有的函数用于创建或获取它本身的静态私有对象。
    三.单例模式的类图
        
     
    四.代码
        有三种形式的代码,根据具体的情况选择;          
    《一》懒汉模式
       注:懒汉模式,要在第一次被引用的时候,才进行实例的初始化;但是,是线程不安全的;
    class Singleton{
         private Singleton singleton = null;
     
         private Singleton(){          
         }
     
         public static Singleton getIntance(){
              if(singleton == null){               
                        singleton = new Singleton();
              }
              return singleton;
         }     
    }      
     
    《二》饿汉模式
     注:静态初始化,在类被加载的时候就进行初始化;
    class Singleton{
         private static final Singleton singleton = new Singleton();
         private Singleton(){}
         public static Singleton getInstance(){
              return singleton;
         }
    }
    《三》双重锁定模式
     注:是线程安全的;
    class Singleton{
         prviate Singleton singleton = null;
         
         private Singleton(){}
         
         public static Singleton getInstance(){
              if(singleton == null){
                   synchronized(Singleton.class){
                        if(singleton == null){
                             singleton = new Singleton();
                        }
                   }
              }
              return singleton;
         }
    }
     
     
     
  • 相关阅读:
    Nacos 1.3.0版本部署连接mysql 8+
    Java Certificate证书问题
    UIKit之浅析UIButton
    Xcode Coule not launch "aaa" press launch failed:timed out waiting for app launch
    Cocos2d-x 安装教程for mac(Xcode)
    关于继承UITableViewController若干问题
    Table的分割线偏移量设置 及其 UIEdgeInset详解
    retain、strong、weak、assign区别
    iOS 使用xib创建cell的两种初始化方式
    No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s)
  • 原文地址:https://www.cnblogs.com/beijixingzhiguang/p/4320747.html
Copyright © 2011-2022 走看看