zoukankan      html  css  js  c++  java
  • singleton pattern

    单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。
      

    单例模式有一下特点:
      1、单例类只能有一个实例。
      2、单例类必须自己自己创建自己的唯一实例。
      3、单例类必须给所有其他对象提供这一实例。
      单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。通常,选择单例模式就是为了避免不一致状态,避免政出多头。

     

    饿汉式单例:

    View Code
     1  //饿汉式单例类.在类初始化时,已经自行实例化 
     2  public class Singleton1 {
     3      //私有的默认构造子
     4      private Singleton1() {}
     5      //已经自行实例化 
     6      private static final Singleton1 single = new Singleton1();
     7      //静态工厂方法 
     8      public static Singleton1 getInstance() {
     9          return single;
    10      }
    11  }

    懒汉式单例:

    View Code
     1  //懒汉式单例类.在第一次调用的时候实例化 
     2  public class Singleton2 {
     3      //私有的默认构造子
     4      private Singleton2() {}
     5      //注意,这里没有final    
     6      private static Singleton2 single=null;
     7      //静态工厂方法 
     8      public synchronized  static Singleton2 getInstance() {
     9           if (single == null) {  
    10               single = new Singleton2();
    11           }  
    12          return single;
    13      }
    14  }
  • 相关阅读:
    XP IIS COM+ 应用程序无法打开
    SQL 连接字符串
    WebSocket
    一个很详细的web.xml讲解
    Maven+SpringMVC+SpringFox+Swagger整合示例
    poj 1691 Painting A Board (DFS/状态压缩DP)
    poj 3373 Changing Digits (DFS+剪枝)
    hdu 1171 Big Event in HDU (母函数)
    鸽巢定理
    poj 1724 ROADS
  • 原文地址:https://www.cnblogs.com/caidi/p/3072612.html
Copyright © 2011-2022 走看看