dart設計模式之單例模式
單例模式
這種類型的設計模式屬于創建型模式,它提供了一種創建對象的最佳方式。 這種模式涉及到一個單一的類,該類負責創建自己的對象,同時確保只有單個對象被創建。這個類提供了一種訪問其唯一的對象的方式,可以直接訪問,不需要實例化該類的對象。
模式分析
單例類只能有一個實例。
單例類必須自己創建自己的唯一實例。
單例類必須給所有其他對象提供這一實例。
模式解決問題
控制實例數目,節省系統資源。
保證該類只有一個實例,多處共享
優點
內存中只有一個實例,減少了內存開銷,尤其是頻繁創建和銷毀實例
避免對資源的多重占用
保證全局唯一實例從而保證實例狀態一致
缺點
沒有接口,不能繼承
大量使用也會導致內存泄漏
模式應用場景
要求生產唯一序列號。
WEB 中的計數器,不用每次刷新都在數據庫里加一次,用單例先緩存起來。
創建的一個對象需要消耗的資源過多,比如 I/O 與數據庫的連接等。
模式代碼
class _SingleTon { _SingleTon._(); //第一種方式調用 factory _SingleTon() { return instance; } //第二種方式調用 static _SingleTon instance = _SingleTon._(); int count = 0; } class RunSingleTon implements Run { @override main() { print('單例模式創建'); print(_SingleTon().count++); print(_SingleTon.instance.count++); print(_SingleTon.instance.count++); } }
數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。