簡體   English   中英

Singleton Design Pattern和Singleton Object在Java中有什么區別?

[英]What is the difference between Singleton Design Pattern and Singleton Object In Java?

這是我最近在接受采訪時被問到的問題。 據我所知,通過單例模式,我們可以實例化單例對象。 但是,我想知道我是否正確。

你是對的,Singleton Design Pattern用於實例化Singleton對象:

SingleObject類提供了一個靜態方法來將其靜態實例傳遞給外部世界。 SingletonPatternDemo,我們的演示類將使用SingleObject類來獲取SingleObject對象。 資源

在此輸入圖像描述

代碼如下所示:

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!");
    }
}

要調用SingleObject類:

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();
    }
}

因此,Singleton設計模式描述了如何使用Singleton對象。 WikiLink

請記住,單身人士實際上是偽裝的全球變數。 因此,單身人士被認為是被棄用的。

單例模式是路線的地圖。 Singleton Object實際上正在經歷該路線。

你可以開車,走路,然后穿過那條路。 如果您開車,您可以使用汽車,卡車(或)任何其他方式。

同樣的方式單一模式是一種做某事的方法(或)。 您可以使用任何語言,計算機(或)平台來實際實現該Singleton對象。

Singleton_design_pattern是一種設計模式,它將類的實例化限制為一個對象。 當需要一個對象來協調整個系統的操作時,這非常有用。

Singleton對象是一個單獨的對象,它是通過實現Singleton方法創建的。

要實現這一目標( TRUE Singleton ),

  1. 確保你的課程是final 其他人不能對它進行子類化並再創建一個實例
  2. 將您的單例對象設為private static final
  3. 提供private構造函數和公共getInstance()方法。
  4. 確保此Singleton類僅由一個ClassLoader
  5. 覆蓋readResolve()方法並返回相同的實例。

有關Singleton有效實現,請參閱此SE問題。

在Java中實現單例模式的有效方法是什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM