緩存(共享)可以共同的對(duì)象、屬性,避免創(chuàng)建大量的重復(fù)對(duì)象、內(nèi)容。
二、Flyweight模式的特點(diǎn):
為重復(fù)或可共享的對(duì)象、屬性設(shè)置一個(gè)緩沖,稱為內(nèi)部屬性。這些內(nèi)部屬性一般情況下都是不可修改的,也就是在第一個(gè)對(duì)象、屬性被創(chuàng)建后,就不會(huì)去修改了(否則就沒(méi)意義了)。
除了共享對(duì)象、屬性之外,還有一些是基于應(yīng)用環(huán)境,或是實(shí)時(shí)數(shù)據(jù),這些無(wú)法共享的東西我們稱為外部狀態(tài)。
在Flyweight模式應(yīng)用中,通常修改的是外部狀態(tài)屬性,而內(nèi)部狀態(tài)屬性一般都是用于參考或計(jì)算時(shí)引用。
三、Flyweight模式的構(gòu)成:
Flyweight模式一般由幾個(gè)部分組成:
·Flyweight接口(抽象類(lèi)) :定義了一個(gè)可共享的元類(lèi)
·Flyweight實(shí)現(xiàn)類(lèi):實(shí)現(xiàn)了元類(lèi)中的操作,而且可能會(huì)提供一個(gè)用于保存內(nèi)部狀態(tài)(共享屬性)的空間
·Flyweight Factory:創(chuàng)建Flyweight的工廠類(lèi),創(chuàng)建后將其保存到Flyweight Pool中
·Flyweight Pool:緩沖Flyweight對(duì)象的池,通常包含在工廠類(lèi)中


















也就是在緩沖這一點(diǎn)上,體現(xiàn)了Flyweight模式的精髓。
-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。