デザインパターン学習メモ:「Flyweight」


このパターンの目的

GoF本より引用する。

多数の細かいオブジェクトを効率よくサポートするために共有を利用する。(P.207)

GoF本の例でいうと、文書エディタを作る際、ひとつひとつの文字までもオブジェクトとして実装すると、アプリケーションの柔軟性がもっとも細かいレベルに達する。

しかし、その反面オブジェクトの数が膨大になり、システムリソースが枯渇するおそれがある。

そこで、共有オブジェクトを使用する。

実装例

割愛する。

いつも参考にしている、『アジャイルソフトウェア開発の奥義』と『オブジェクト指向のこころ』に登場しないため。

オブジェクトの共有は問題を引き起こしやすいので、使用する機会もあまり無いと思う。

参考文献

  • エリック ガンマ、ラルフ ジョンソン、リチャード ヘルム、ジョン プリシディース(1999)『オブジェクト指向における再利用のためのデザインパターン 改訂版』本位田 真一、吉田 和樹 監訳、SBクリエイティブ