Flyweight パターン
StampFactory
対象のインスタンスをプールから呼び出す。
対象のインスタンスを返す。
このように FlyweightFactory では状況によって異なる処理が行われるが、利用者側が得る結果は全く同じであるため、利用者は FlyweightFactory の内部構造を意識せずに使うことができるという点が特徴である。
Flyweight パターンを採用すべき典型的な例は、不変なクラスを扱う場合である。不変なクラスとはインスタンスが生成された後にそのインスタンスの状態が変化しないようなクラスであり、Java では java.math.BigInteger や java.awt.Color などが挙げられる。詳しくはイミュータブルを参照。