Flyweight は、 構造に関するデザインパターンの一つで、 メモリー消費量を低く抑えることで、 プログラムが膨大な数のオブジェクトを支えることができるようにします。
複数のオブジェクト間でオブジェクトの状態の一部を共有することにより、 これを実現します。 つまり、 Flyweight は、 異なるオブジェクトによって使われる同じデータをキャッシュすることにより、 RAM を節約します。
複雑度:
人気度:
使用例: Flyweight の目的はただ一つです: メモリー摂取を最小にする。 もしご自分のプログラムが RAM 不足で困っていない場合は、 このパターンのことはしばらく忘れて大丈夫です。
見つけ方: Flyweight は、 新規オブジェクトの代わりにキャッシュされたオブジェクトを返す生成メソッドの存在により識別できます。
概念的な例
この例は、 Flyweight デザインパターンの構造を説明するためのものです。 以下の質問に答えることを目的としています:
- どういうクラスからできているか?
- それぞれのクラスの役割は?
- パターンの要素同士はどう関係しているのか?
main.rb: 概念的な例
output.txt: 実行結果