2012-06-06 55 views
-3

當我們實現Singleton類時,flex中的構造函數不能是私有的,這樣其他類仍然可以新建Singleton類。我發現了一個解決方案,以實現與「私有」的構造函數Singleton類:Flex Singleton解決方案

package 
{ 
    public class Singleton 
    { 
     public static function get Instance():SingletonPrivate 
     { 
      return SingletonPrivate.Instance; 
     } 
    } 
} 
class SingletonPrivate 
{ 
    public static const Instance:SingletonPrivate = new SingletonPrivate(); 
    public function SingletonPrivate() 
    {  

    } 

    public function getValue():String 
    { 
     return "Hello World"; 
    } 
} 
+3

這不是問題。 – Marty

回答

3

,這只是在ActionScript作用域內部。你理論上也可以創建新的實例,因爲你從不檢查一個實例是否已經創建。你從不仔細檢查。

雖然我建議避免單身人士。與大多數iOC框架類似,您可以創建一個模型的上下文。在那裏你可以創建所有的實例並通過實例的構造函數或setter注入它們。這是一種更清潔的方法,因爲沒有人需要考慮一個班級是否必須作爲一個單純的組合使用。視圖控制器也可以在這種情況下創建。單身並不是真正有用的imho。