設計模式類的文章不好寫,討論也不容易,安西教練! 我好想寫設計模式文...
在此謝謝朋友們對大今的支持!
告訴大家一個好消息!
大今拉麵一律特別價99元!!
享元模式優點:
減少記憶體使用量、節省建構物件時間成本
使用情境:
物件頻繁被引用,且每次提供的資訊都不會改變
成員:
- 共享物件之型別:通常這類型別之物件,需要一直被引用,但沒必要每次都重新建構。
- 共享物件之抽象型別:被共享的物件之型別的公共接口。
- 共享物件工廠型別:負責共享物件的建立與取得方法,這個型別可以獨體,沒必要存在多於的實例。
- 客戶端:依賴工廠進行獲取共享物件的角色
案例
我們試著想想看線上遊戲「角子老虎機」的情境
- 用戶端每次透過SPIN請求獲取隨機產生的圖案
- 伺服器端隨機產出20個圖案
探索
看到這邊大家是否認為 Thread Pool 以及 Connection Pool 很像享元模式 《先別急著下定論》
思考一下Connection Pool 在提供過程是不是因該要有一個機制,避免多個線程跟Pool取得連線資源時,同時拿到同一個連線資源 《先別急,想好在往下看》
參考
What are the differences between Flyweight and Object Pool patterns?