Re: [問題]請問這樣的 Java Class 算不算是一個 Si …

看板Programming作者 (Alien)時間18年前 (2008/01/11 01:23), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串7/16 (看更多)
※ 引述《oohay (五黑)》之銘言: : ※ 引述《qrtt1.bbs@bbs.sayya.org (foolish)》之銘言: : : 實作 Singleton Pattern 簡單的說就是 : : 控管 constructor 讓外界無法由 new 的方式產生任意個物件 : : public final class SingletonEx { : : static SingletonEx self = new SingletonEx(); : : private SingletonEx() { : : } : : public static SingletonEx getInstance(){ : : return self; : : } : : public static void main(String[] args) { : : // reference 都應該要是一樣的 : : assert(SingletonEx.getInstance() == SingletonEx.getInstance()); : : } : : } : 我想singleton不能這麼做. : 不贊成的理由是: 若你說一個final class是個singleton, : 不過它的methods只要是開放的,就是對其他任何object與class都開放, : 這對java程式來說,失去了很重要的基本要項--來自繼承的保護. : Singleton class應該是一個可實體化的class, : 它保證一次只有一個實體存在. 人家的重點在於 "控管 constructor 讓外界無法由 new 的方式產生任意個物件" 而不是 "final class 是個 singleton" 吧? 一向 "final class" 也不是 singleton 的特癥。 你確定你有看清楚 qrtt1 寫的是什麼? Alien -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.103.235.35
文章代碼(AID): #17XbIbOI (Programming)
討論串 (同標題文章)
文章代碼(AID): #17XbIbOI (Programming)