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;
         }
    }
     
     
     
  • 相关阅读:
    一步一步理解XMLDOM(一)
    按轨迹周期运动
    Python中’__main__’模块的作用
    多进程IPC与Python支持
    Eclipse启动多个Android模拟器
    解决Android平台移植ffmpeg的一揽子问题
    开源项目 GitHub地址
    使用viewpager嵌套实现上下左右滑动切换图片(IOS双向滚动翻页效果相同)
    Android中ScrollView消除阴影的办法
    如果项目为android library怎么运行
  • 原文地址:https://www.cnblogs.com/beijixingzhiguang/p/4320747.html
Copyright © 2011-2022 走看看