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("只有一个实例被创建!");
    		}
    	}
    }
    
  • 相关阅读:
    JS_Boolean Logic
    js String
    .Net之路(二)简介
    自考 操作系统概论计算机系统
    IT大学生最重要的五个能力
    数据库表及字段命名规范
    简述MVC分层
    .Net之路(一)概述
    设计模式(4)迭代器模式
    .Net之路(三)如何连接数据库?
  • 原文地址:https://www.cnblogs.com/helloweworld/p/3045224.html
Copyright © 2011-2022 走看看