看板 java 關於我們 聯絡資訊
※ 引述《Kenqr (夏天的微笑)》之銘言: : public interface A{ void function(); } : public class B implements A{ void function(){ /*實作*/ } } : B只提供function()的實作 沒有任何變數 : 所以只需要一個instance讓大家共用就可以了 : 當然多生幾個instance出來也不會有問題 : 這種情況下應該讓B只有一個instance並用getInstance()取得呢 : 或者不必自找麻煩 用new的就好了 : 或是使用anonymous class 直接生出b讓大家用 : public static final A b = new A(){ void function(){ /*實作*/ } }; : 請問以上三種方法哪一種比較好 以及為什麼? 關於 B.getInstance(); 其實可以參考 Factorty Pattern, 將建構子封裝起來有許多好處,包括 (1)可以控制instance的數量,作 Multiton (2)管理取得此物件的權限:public, protected, default 因此不一定是需要作Singleton時才可應用 getInstance() 當然,與Factory不太一樣,這裡是直接call物件本身的getInstance method -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.67.10.34
adrianshum:嚴格來說這 pattern 該叫 Factory Method 03/13 11:23