享元(Flyweight)模式要點

1.採用共享的方法來降低系統中細粒度對象的個數,從而降低內存消耗。

2.享元對象

   內蘊狀態(Internal State):存儲在享元對象內部不隨環境而改變,可以共享,使對象相對於內蘊狀態在整個系統中是唯一的;

   外蘊狀態(External State):在客戶端保存會隨環境而改變,需要在使用的時候傳入到對象的內部;

   2種狀態是相互獨立的。

3.軟件對象不依賴於對象的身份,這些對象是不可分辨的。

4.抽象享元角色(flyweight)

   具體享元角色(concreteflyweight)

   享元工廠角色(flyweightfactory):將享元對象用工廠方法封裝起來,這個工廠必須是單件的,享元類可以被實例化而單件類則不可以。

   客戶端角色(client)

   這裏的角色就是類。

5.缺點

   程序的邏輯複雜化,享元對象的狀態外部化使系統運行時間稍微變長。

6.在實際開發中並不常用。

7.在.net中運用

   string類型,創建2個同樣的字符串(字符串內容相同)對象在內存中的位置(引用)相同,這個相同的字符串就是2個字符串對象的“享元”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章