MyEnigma

とあるエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

C++によるデザインパターン20: Flyweightパターン

増補改訂版 Java言語で学ぶデザインパターン入門

増補改訂版 Java言語で学ぶデザインパターン入門

オブジェクト指向における再利用のためのデザインパターン

オブジェクト指向における再利用のためのデザインパターン

  • 作者: エリックガンマ,ラルフジョンソン,リチャードヘルム,ジョンブリシディース,Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides,本位田真一,吉田和樹
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 1999/10
  • メディア: 単行本
  • 購入: 21人 クリック: 711回
  • この商品を含むブログ (212件) を見る


Flyweightパターン

Flyweightパターンは、

同じオブジェクトを使いまわせるようにする

デザインパターンです。


ある文章を生成するソフトにおいて、

それぞれの文字の一つ一つのために

オブジェクトを生成すると

メモリの消費量が増大してしまいます。


Flyweightパターンでは、

オブジェクトのDBを作成しておき、

DBにないオブジェクトが必要になった時だけ

新しいオブジェクトを作るようにします。


これにより無駄なオブジェクトの

メモリを消費抑えることができます。

また、使用する側はそのような処理をしていることを

意識しないで処理を実施することができます。


C++によるサンプルコード

下記のGitHubページにて公開しています。

cpp/Flyweight.cpp at master - AtsushiSakai/cpp