Flyweight Pattern
又稱為享元模式,於相似物件中共享儘可能多的資訊,
進而減少記憶體使用量。
Example: 文字積木
蠅量模式會將類別分為兩類:
分別是工廠類別 (Factory) 與 蠅量類別 (Flyweight) 。
透過區分出程式碼的內部狀態與外部狀態,
來找出可以共用的程式碼。
將它抽離成蠅量類別,其狀態是不可變的 (immutable) 。
優點:
當擁有許多相似物件時,可節省大量記憶體。
缺點:
程式碼複雜度提高。
與其他模式的比較:
[單例模式]:
兩者的精神皆是透過共用已創建的實例,來節省資源。
但蠅量模式的實例狀態是不可變的。
ʕ •ᴥ•ʔ:工廠模式與單例模式的聯合應用技。