(八)单例模式

一、概念

一个类在程序中仅有单个对象存在,不会存在多个这个类的对象。保证一个类仅有一个实例,并提供一个访问它的全局访问点。

主要解决一个全局使用的类频繁地创建与销毁。需要自己创建自己的实例并提供给其他类使用,构造函数写为私有。

二、例子

单例模式中保存了唯一的自己这个类的静态实例,并将构造函数设为私有,对外提供了静态的getInstance函数。

public class SingleObject {
 
   //创建 SingleObject 的一个对象
   private static SingleObject instance = new SingleObject();
 
   //让构造函数为 private,这样该类就不会被实例化
   private SingleObject(){}
 
   //获取唯一可用的对象
   public static SingleObject getInstance(){
      return instance;
   }
 
   public void showMessage(){
      System.out.println("Hello World!");
   }
}

//测试部分
public class SingletonPatternDemo {
   public static void main(String[] args) {
 
      //不合法的构造函数
      //编译时错误:构造函数 SingleObject() 是不可见的
      //SingleObject object = new SingleObject();
 
      //获取唯一可用的对象
      SingleObject object = SingleObject.getInstance();
 
      //显示消息
      object.showMessage();
   }
}

三、总结

单例模式有几种实现方式,在下一节再瞅。之前对单例模式的理解是重写new和delete,new时返回唯一的静态实例,delete时也不删除唯一的静态实例。但看来不是这样的,接下来开始对《head first》设计模式这本书进行研究。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章