zoukankan      html  css  js  c++  java
  • 单例模式典型创建方法(三种)

    单线程

     
    class Singleton {
    	
    	private Singleton() {};
    	private static Singleton instance = null;
    	
    	public static Singleton createInstance() {
    		if (instance == null) {
    			instance = new Singleton();
    		}
    		return instance;
    	}
    	
    }
     
    public class HelloWorldjava {
    
    	public static void main(String[] args) {
    		Singleton s1 = Singleton.createInstance();
    		Singleton s2 = Singleton.createInstance();
    		
    		if (s1 == s2) {
    			System.out.println("只有一个实例被创建!");
    		}
    	}
    }
    
     

    预先加载

    class Singleton {
    	
    	private Singleton() {};
    	private static Singleton instance = new Singleton();
    	
    	public static Singleton createInstance() {
    		return instance;
    	}
    	
    }
    
    
    public class HelloWorldjava {
    
    	public static void main(String[] args) {
    		Singleton s1 = Singleton.createInstance();
    		Singleton s2 = Singleton.createInstance();
    		
    		if (s1 == s2) {
    			System.out.println("只有一个实例被创建!");
    		}
    	}
    }
    

    按需创建

    class Singleton {
    	
    	private Singleton() {};
    	
    	private static class Helper {
    		static Singleton instance = new Singleton(); 
    	}
    	
    	public static Singleton createInstance() {
    		return Helper.instance;
    	}
    	
    }
    
    public class HelloWorldjava {
    
    	public static void main(String[] args) {
    		Singleton s1 = Singleton.createInstance();
    		Singleton s2 = Singleton.createInstance();
    		
    		if (s1 == s2) {
    			System.out.println("只有一个实例被创建!");
    		}
    	}
    }
    
  • 相关阅读:
    nginx搭建https服务器
    linux重新安装grub2
    docker使用笔记
    开户vim编程之--cscope支持
    mac代码自动补全git上
    python常用函数大总结
    服务器管理模块信息收集
    Virtual Data Optimizer虚拟存储优化器实战
    虚拟化-SDDC软件定义数据中心
    富士通 DX90 S2存储分配映射盘
  • 原文地址:https://www.cnblogs.com/helloweworld/p/3045224.html
Copyright © 2011-2022 走看看