Re: [問題] 什麼時候該用getInstance()?
※ 引述《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
推
03/13 11:23, , 1F
03/13 11:23, 1F
討論串 (同標題文章)