天天看點

單例模式

如果想要一個全局統一的對象,可以把這個對象設為全局變量。如果想要實作一個類隻能執行個體化一次,那麼就需要用到單例模式了。

單例模式就是将單例類的構造函數設為私有,然後通過設定一個靜态方法,靜态方法中對這個類是否執行個體化做判斷,如果沒有執行個體化過,就new一個單例類的執行個體,然後做為這個靜态方法的傳回值傳回。因為構造函數私有,是以不用通過new直接執行個體化,一定要調用靜态方法來間接執行個體化。而靜态方法中設定判斷,就可以要求每個需要執行個體化的請求都必須通過這個判斷。

單例模式需要考慮的問題是多線程時,如何避免執行個體化的瞬間有多個純程同時進行了靜态方法的調用,進而執行個體化出多個執行個體。

繼續閱讀