zoukankan      html  css  js  c++  java
  • 设计模式--单例模式Singleton

    单例模式顾名思义整个程序下只有一个实例,例如一个国家只有一个皇帝,一个军队只有一个将军。
    单例模式的书写又分为饿汉模式和懒汉模式

    饿汉模式
       类中代码

    package demo;
    
    public class Singleton {
       //私有化构造函数
       private Singleton() {
       }
       
       //由于外部无法实例对象,顾在类中实例,定义为static将对象直接由类调用
       private static Singleton instance = new Singleton();
       
       //定义公有成员函数,以便访问私有化的实例
       public static Singleton getInstance(){
    	   return instance;
       }
       
    }
    

      主函数

    package demo;
    
    public class main {
    
    	public static void main(String[] args) {
    	   //定义两个实例
           Singleton s1 = Singleton.getInstance();
           Singleton s2 = Singleton.getInstance();
           if(s1==s2){
        	   System.out.println("s1与s2是同一个实例");
           }else{
        	   System.out.println("s1与s2不是同一个实例");
           }
    	}
    }
    

    懒汉模式
       类

    package demo;
    
    public class Singleton {
       //私有化构造函数
       private Singleton() {
       }
       
       //由于外部无法实例对象,顾在类中实例,定义为static将对象直接由类调用
       private static Singleton instance = null;
       
       //定义公有成员函数,以便访问私有化的实例
       public static Singleton getInstance(){
    	   if(instance==null){
    		   return new Singleton();
    	   }
    	   return instance;
       }
       
    }
    

      主函数

    package demo;
    
    public class main {
    
    	public static void main(String[] args) {
    	   //定义两个实例
           Singleton s1 = Singleton.getInstance();
           Singleton s2 = Singleton.getInstance();
           if(s1==s2){
        	   System.out.println("s1与s2是同一个实例");
           }else{
        	   System.out.println("s1与s2不是同一个实例");
           }
    	}
    }
    

      

  • 相关阅读:
    设计模式之工厂模式-抽象工厂(02)
    1036 跟奥巴马一起编程 (15 分)
    1034 有理数四则运算 (20 分)
    1033 旧键盘打字 (20 分)
    1031 查验身份证 (15 分)
    大学排名定向爬虫
    1030 完美数列 (25 分)二分
    1029 旧键盘 (20 分)
    1028 人口普查 (20 分)
    1026 程序运行时间 (15 分)四舍五入
  • 原文地址:https://www.cnblogs.com/zsboy/p/4085576.html
Copyright © 2011-2022 走看看