蠅量模式

Flyweight Pattern

又稱為享元模式,於相似物件中共享儘可能多的資訊,

進而減少記憶體使用量。

Example: 文字積木


蠅量模式會將類別分為兩類:
分別是工廠類別 (Factory) 與 蠅量類別 (Flyweight) 。

透過區分出程式碼的內部狀態與外部狀態,
來找出可以共用的程式碼。

將它抽離成蠅量類別,其狀態是不可變的 (immutable) 。


優點:
當擁有許多相似物件時,可節省大量記憶體。

缺點:
程式碼複雜度提高。


與其他模式的比較:

[單例模式]:
兩者的精神皆是透過共用已創建的實例,來節省資源。
但蠅量模式的實例狀態是不可變的。


ʕ •ᴥ•ʔ:工廠模式與單例模式的聯合應用技。

Share