1. 单例模式

来源:互联网 发布:新三板交易软件 编辑:程序博客网 时间:2024/06/05 18:26

package 单例模式;

//单例模式

class Singleton{

  private static Singleton instance;//定义静态成员,因为静态方法getInstance()只能访问静态成员

  private Singleton(){}//构造方法让其private ,这就堵死了外界利用new创建此类实例的可能

  public static Singleton getInstance(){//此方法是获得本类实例的唯一全局访问点
      if(instance==null){//若实例不存在,则new一个新实例,否则返回已有的实例
       instance = new Singleton();
      }
      return instance;
  }

  public void test(){
    System.out.println("Test");
}
}

 public class TestClass {
   public static void main(String[] args) {
   
    Singleton s1=Singleton.getInstance();
    s1.test();
   
    Singleton s2=Singleton.getInstance();//s1和 s2指向的是同一个对象,只创建了一个对象
    s2.test();
   
    if(s1==s2)
     System.out.println("OK");
   
  
 

 }

}

 

package 单例模式;

//单例模式 饿式

class Singleton{

  private static Singleton instance=new Singleton();//定义静态成员,因为静态方法getInstance()只能访问静态成员
  private Singleton(){}//构造方法让其private ,这就堵死了外界利用new创建此类实例的可能

  public static Singleton getInstance(){//此方法是获得本类实例的唯一全局访问点
  
      return instance;
  }

  public void test(){
    System.out.println("Test");
  }
}

 public class TestClass {
   public static void main(String[] args) {
   
    Singleton s1=Singleton.getInstance();
    s1.test();
   
    Singleton s2=Singleton.getInstance();//s1和 s2指向的是同一个对象,只创建了一个对象
    s2.test();
   
    if(s1==s2)
     System.out.println("OK");
   
  
 }

}