-
特點:Flyweight釋義有輕量級、享元等。享元這個詞對我而言很難理解蹲嚣,卻又不明覺厲。
享元模式一句話總結(jié)就是通過盡量共享實例來避免new出實例祟牲。這句話的精髓就是共享隙畜,共享什么呢?共享已存在的實例说贝,實現(xiàn)資源重復(fù)利用议惰。比如Java語言,在用new創(chuàng)建一個實例時是相對較重的程序操作乡恕,可是前面講過原型模式可以解決這個問題言询,為什么不用呢?因為原型模式只能解決部分時間問題傲宜,而且不能解決空間問題运杭,享元模式既能節(jié)省時間又能減少內(nèi)存浪費。
簡單說就是實例作為資源個體單元被共享函卒,這個時候再回頭看享元這個詞辆憔,似乎就很好理解了,享就是共享报嵌,元就是被共享的資源個體單元虱咧。 - 角色:
角色名稱 | 角色職責(zé) |
---|---|
Flyweight(輕量級) | 定義被共享的類,類中的數(shù)據(jù)信息可分為兩種:Intrinsic(本質(zhì)的锚国、固有的)信息:不依賴于位置與狀況腕巡,可以共享;Extrinsic(外在的跷叉、非本質(zhì)的)信息:依賴于位置與狀況逸雹,不能共享。 |
FlyweightFactory(輕量級工廠) | 生產(chǎn)Flyweight角色的工廠云挟,同時管理著被生產(chǎn)的Flyweight對象池 |
Client(請求者) | 通過FlyweightFactory獲取Flyweight組裝數(shù)據(jù) |
-
角色關(guān)系:
代碼示例:Flyweight
以上文獻參考:《圖解設(shè)計模式》