Java中的工廠模式是一種創建型設計模式,它提供了一種創建對象的最佳方式。當需要創建對象時,工廠模式將創建一個新的對象,而無需將該創建代碼直接編寫在代碼中。
單例模式是另一種常見的設計模式,它確保類只能有一個實例,并提供了全局訪問該實例的途徑。單例模式的實現是通過將構造函數設為私有來實現,然后提供一個靜態方法來獲取該實例。
public class Singleton { private static Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }
在組合使用工廠模式和單例模式時,可以將工廠模式用作創建單例的方法。以下是一個示例,它使用工廠模式創建單例的線程安全實例:
public class SingletonFactory { private static final Singleton instance = new Singleton(); public static Singleton getInstance() { return instance; } }
在這個例子中,可以看到單例模式的實現與我們所熟悉的一樣。然而,現在我們將單例模式作為一個實例緩存,并將其包裝在一個工廠中,該工廠隱藏了單例模式的實現。這種方法允許我們以更清晰的方式呈現代碼,并使代碼更易于維護和擴展。