PROFESSIONAL GAME CREATOR SCHOOL G学院 用語集

OFFICIAL SITEへ戻る

Flyweight

 Flyweightとは、オブジェクト指向プログラミングにおける23種類の公式、デザインパターンの1つです。このデザインパターンはオブジェクトの構造に関係するパターンです。
 このFlyweightパターンは、一言でまとめると必要最小限しかオブジェクトを生成しないようにするパターンです。英語では「フライ級」を意味する単語であり、ボクシングの体重階級の中で軽い部類のフライ級のように、一度作製したオブジェクトを共有することでリソースを無駄なく使うようにしたパターンです。例えるならば、レストランで客に出した料理を片付けた後、皿を洗ってもう一度他の客に出すというイメージです。必要が無ければ、新品の皿は出しません。
 Flyweightパターンの実装には、Flyweightクラスのオブジェクトを作成するクラス(Stockクラスとします)が、Flyweightオブジェクトの存在状況を管理するように設計する必要があります。Stockクラスは在庫管理をしており、Flyweightオブジェクトのインスタンスを一挙に管理します。呼び出し元から、Stockクラスにオブジェクトの作成依頼があった際、Stockクラスは、要求されたFlyweightオブジェクトが既に用意されていないか確認し、用意されていなければ生成、用意されていればそのインスタンスを返す、というように実装します。
 これにより必要最小限のオブジェクトで事足ります。在庫に皿が無ければ、新品を取り出す(インスタンス化)というようなイメージです。

用語集一覧へ戻る