設計模式:Java 中的單例
已發表: 2021-11-13當程序員需要在面向對象的軟件開發中利用最佳可用實踐時,設計模式對他們是有益的。 設計模式可以理解為用於解決手頭設計問題的經過充分驗證和嘗試和測試的解決方案。 設計系統描述了問題、解決方案、何時應用解決方案及其後果。 在某種程度上,設計模式可以被認為是軟件開發人員在解決特定的面向對象設計問題時可以實現的不同模板。
與從頭開始編碼相比,在 Java 中使用設計模式的一些特性包括:
- 設計模式已經定義和實現。 因此,它們提供了解決重複性問題的標準方法。 從這個意義上說,它可以幫助程序員節省大量時間和精力。
- 使用設計模式可確保代碼的可重用性,從而提高 Java 代碼的可維護性和健壯性。 所有這些都會降低手頭軟件的總擁有成本 (TCO)。
- 設計模式使代碼易於閱讀和理解,從而實現更快的溝通和無縫的軟件開發。
Java 編程語言為程序員和開發人員提供了各種設計模式,大致可以分為三類:
- 創意設計模式
- 結構設計模式
- 行為設計模式
所有這些模式都用於不同的用例和目的。 通過這篇文章,我們來談談Java中的一種設計模式——單例設計模式,它屬於Creational Design Patterns範疇。
目錄
Java中的單例設計模式
單例設計模式屬於創建設計模式類別。 它確保一個類只有一個實例,為這個實例提供一個全局訪問點。 在這樣做的過程中,單例設計模式同時解決了兩個問題——包括:
1. 它確保給定的類只有一個實例。
考慮這一點很重要,尤其是在處理共享資源(如數據庫或文件)時。 想像一下,您創建了一個對象,但過了一會兒,決定創建一個新對象。 在單例設計模式中,您不會收到新的對象,而是會得到您已經製作的對象。 這樣,這種設計模式就可以確保對像沒有冗餘,並且一個類只有一個實例。 構造函數無法複製此行為,因為構造函數調用必須始終返回一個新對象。
2. 為特定實例提供全局訪問點。
用於存儲基本對象的全局變量非常方便。 它們也同樣不安全,因為任何一段代碼都有能力覆蓋全局變量的內容,從而導致你的代碼出現錯誤。 就像全局變量一樣,單例模式允許您從程序中的任何位置訪問不同的對象。 但是,與全局變量不同,單例模式可以保護該實例不被另一個程序覆蓋。
如今,單例設計模式被如此廣泛地使用和流行,即使它只解決了上面列出的問題之一,程序員也可能稱之為單例。 單例設計模式的所有實現都有以下兩個共同步驟:
- 將默認構造函數設為私有,以防止其他類和對像對 Singleton 類使用新運算符。
- 構建靜態創建方法以充當構造函數。 然後,此方法調用私有構造函數來創建對象並將其保存在靜態字段中。 現在對這個特定方法的所有即將調用都返回緩存的對象。
政府的運作是了解單例設計模式如何工作的一個很好的現實例子。 不管構成政府的個人的個人身份如何,“X 政府”這個標題是識別正在談論的人群的全球訪問點。
在 Java 中實現單例設計模式
請通過以下步驟列表在 Java 中實現您自己的單例設計模式:
- 將私有靜態字段添加到您希望存儲單例實例的類。
- 要獲得適當的單例實例,您必須聲明一個公共靜態方法。
- 現在,您需要在靜態方法中執行“延遲初始化”。 這實際上應該在第一次調用時開發一個新對象並將其放入靜態字段中。 靜態方法必須始終在所有後續調用中返回該特定實例。
- 將構造函數設為私有。 類的靜態方法仍然可以調用構造函數,但不能調用其他對象。
- 請檢查客戶端代碼並將所有對 Singleton 構造函數的直接調用替換為對其靜態創建方法的調用。
綜上所述
Java 是一種高度多樣化和有影響力的編程語言,它已成為當今使用的大多數 Web 和桌面應用程序的基礎。 它提供了多種功能和策略,程序員可以使用這些功能和策略以優化的方式開發性能更好的軟件。 設計模式是 Java 程序員採用的一種策略,以使他們的代碼具有可讀性、可重用性和可理解性。
設計模式是任何有抱負的軟件開發人員都應該研究的基本概念之一。 軟件開發的世界是廣闊的,它涵蓋了從前端、後端、數據庫、服務器等各個方面。 在這種情況下,需要將時間安排在您的學習方法中。 在 upGrad,您可以查看軟件開發課程,這些課程將幫助您在軟件開發領域建立長久的職業生涯。 本課程與 IIIT-B 合作提供,由行業專家教授,讓您有機會朝著您選擇的方向發展您的職業生涯。 查看課程詳情並立即註冊——課程將於 2021 年 9 月 30 日開始!
單例設計模式是 Java 唯一可用的設計模式嗎?
不,Java 為程序員提供了許多設計模式,Singleton 只是其中之一。
Java 有哪些可用的設計模式類型?
Java 為開發人員提供了大致三種類型的設計模式;
1. 創意設計模式
2. 結構設計模式
3. 行為設計模式
在 Java 中使用設計模式有什麼好處?
在你的代碼中使用設計模式提供了以下肯定的好處:
1. 增強可讀性
2.提高模塊化
3. 易於訪問
4. 易於設計和創建程序。