設計模式 之 享元模式
阿新 • • 發佈:2018-11-20
info 如果能 實例化 應用 技術 一個 對象存儲 數量 col 也就是說,享元模式Flyweight執行時所需的狀態是有內部的也可能有外部的,內部狀態存儲於ConcreteFlyweight對象之中,而外部對象則應該考慮由客戶端對象存儲或計算,當調用Flyweight對象的操作時,將該狀態傳遞給它.
(一) 享元模式
享元模式 : 運用共享技術有效地支持大量細粒度的對象
(二)內部狀態和外部狀態
在享元對象內部並且不會隨環境改變而改變的共享部分,可以稱為是享元對象的內部狀態,而隨環境改變而改變的,不可以共享的狀態就是外部狀態了.事實上,享元模式可以避免大量非常相似的開銷.在程序設計中,有時需要生成大量細粒度的類實例來表示數據.如果能發現這些實例除了幾個參數外基本上都是相同的,有時就能夠受大幅度地減少需要實例化的類的數量.如果能發現這些實例除了幾個參數外基本上都是相同的,有時就能夠受大幅度地減少需要實例化的類的數量.如果能把那些參數移到類實例的外面,在方法調用時將它們傳遞進來,就可以通過共享大幅度地減少單個實例的數目.
(三)享元模式的應用
如果一個應用程序使用了大量的對象,而大量的這些對象造成了很大的存儲開銷時就應該考慮使用:還有就是對象的大多數狀態可以是外部狀態,如果刪除對象的外部狀態,如果刪除對象的外部狀態,那麽可以用相對較少的共享對象取代很多組對象,此時可以考慮使用享元模式.
乘風破浪會有時,
直掛雲帆濟滄海
設計模式 之 享元模式