鍍金池/ 教程/ Java/ Java單例模式
Java前端控制器模式
Java工廠設(shè)計(jì)模式
Java抽象工廠模式
Java觀察者模式
Java門面模式(或外觀模式)
Java備忘錄模式
Java MVC模式
Java單例模式
Java傳輸對(duì)象模式
Java迭代器模式
Java責(zé)任鏈模式
Java命令模式
Java原型模式
Java解釋器模式
Java適配器模式
Java狀態(tài)模式
Java中介者模式(Mediator Pattern)
Java攔截過濾器模式
Java策略模式
Java組合模式
Java業(yè)務(wù)代理模式
Java裝飾模式
Java模板模式
Java橋接模式
Java過濾器模式(條件模式)
Java享元模式(Flyweight Pattern)
Java建造者(Builder)模式
Java設(shè)計(jì)模式
Java空對(duì)象模式
Java數(shù)據(jù)訪問對(duì)象模式
Java訪問者模式
Java組合實(shí)體模式
Java服務(wù)定位器模式

Java單例模式

單例(Singleton)模式是Java中最簡單的設(shè)計(jì)模式之一。這種類型的設(shè)計(jì)模式屬于創(chuàng)建模式,因?yàn)榇四J教峁┝藙?chuàng)建對(duì)象的最佳方法之一。

這種模式涉及一個(gè)類,它負(fù)責(zé)創(chuàng)建一個(gè)對(duì)象,同時(shí)確保只創(chuàng)建一個(gè)對(duì)象。這個(gè)類提供了一種方法來訪問它的唯一對(duì)象,可以直接訪問,而不需要實(shí)例化類的對(duì)象。

實(shí)現(xiàn)實(shí)例

我們將創(chuàng)建一個(gè)單一對(duì)象類 - SingleObject。單個(gè)對(duì)象(SingleObject)類的構(gòu)造函數(shù)是私有的,并且具有自身的靜態(tài)實(shí)例。

SingleObject類提供了一個(gè)靜態(tài)方法來獲取其靜態(tài)實(shí)例到外部世界。SingletonPatternDemo或示例類將使用SingleObject類來獲取SingleObject對(duì)象。

第1步

創(chuàng)建一個(gè)Singleton類,

SingleObject.java

public class SingleObject {

   //create an object of SingleObject
   private static SingleObject instance = new SingleObject();

   //make the constructor private so that this class cannot be
   //instantiated
   private SingleObject(){}

   //Get the only object available
   public static SingleObject getInstance(){
      return instance;
   }

   public void showMessage(){
      System.out.println("Hello World!");
   }
}

第2步

從單例類中獲取唯一的對(duì)象。

SingletonPatternDemo.java

public class SingletonPatternDemo {
   public static void main(String[] args) {

      //illegal construct
      //Compile Time Error: The constructor SingleObject() is not visible
      //SingleObject object = new SingleObject();

      //Get the only object available
      SingleObject object = SingleObject.getInstance();

      //show the message
      object.showMessage();
   }
}

第3步

驗(yàn)證輸出,得到結(jié)果如下 -

Hello World!