コース: C#:デザインパターン

無料トライアルでこのコースを視聴する

今すぐ登録して、25,300件以上登録されている、業界エキスパート指導のコースを受講しましょう。

Flyweightの概要を知る

Flyweightの概要を知る - C#のチュートリアル

コース: C#:デザインパターン

Flyweightの概要を知る

Flyweight パターンを利用すると、 効率よくインスタンスを作成し、 処理を軽量にすることができます。 Flyweight は、 軽量級という意味です。 Flyweight は、構造に関するパターンに 分類されます。 生成するインスタンスで 同じものを利用する場合に、 それを共有することで、 インスタンスを作成する リソースとコストを削減することが できます。 Flyweight パターンには、 2つの役割が登場します。 ひとつは、 軽量化の対象となる Flyweight、 もうひとつは軽量化を行い、 インスタンスを作成する FlyweightFactory です。 Flyweight パターンのサンプルを クラスで表示した画面です。 Factory となる FlyweightFactory クラスがあり、 この FlyweightFactory クラスにより 生成される FlyweightChar というクラスがあります。 このクラスは、 文字のひとつを表現しますが、 インスタンスの生成に 非常にコストのかかる 重いクラスだと思ってください。 まずは、Flyweight パターンの 実行結果を確認してみましょう。 FlyweightFactory で 「すもももももももものうち」 という文字列を生成したいと思います。 ひとつずつ文字のクラスを作成すると、 12 文字文必要になりますが、 実際に実行した際に いくつのインスタンスが作成されるか 確認してみましょう。 実行して、 インスタンスを生成した時点で 生成したインスタンスの文字を 表示してみました。 結果を見ると、5つ分のインスタンスが 作成されたことがわかります。 文字列で複数登場する 「も」という文字を表すクラスを ひとつだけ生成して、 再利用するのです。 このように Flyweight パターンを利用すると、 インスタンスの生成を 削減することができます。

目次