簡體   English   中英

系統 class singleton 是抽象的還是什么?

[英]Is System class singleton, abstract or what?

LocalDate這樣的 class 是不可變的,它有一個私有構造函數,每次我們想要一個 object 時,我們都必須調用它的 ZA81259CEF8E959C624DF1D456E5D, LocalDate.now()LocalDate.of(year, month, day)方法。 這些方法使用new關鍵字並調用該私有構造函數,因此每次都會創建一個“新引用”。 它不是 singleton class 因為我們可以同時擁有多個對象。

但是System class 呢? 它看起來像LocalDate ,它有一個私有構造函數,但它沒有 static 方法來調用它。 這個 class 也不是抽象的,那為什么 java 程序員寫System class 就像沒有人可以制作 ZA8CFDE6331BD59EB2666ZFC 一樣? 它背后的設計模式是什么? 哪些類是這樣的?

它有一個從不調用的私有構造函數,因此永遠不會有任何實例(單例需要一個)。

/** Don't let anyone instantiate this class */
private System() {
}

它不是抽象的

public final class System {

System更像是一個命名空間。 它只是一堆 static 方法和常量的容器。

Java 不允許您將方法放在 class 之外,因此有時結果是像這樣完全沒有實例化的“類”。

暫無
暫無

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

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