読者です 読者をやめる 読者になる 読者になる

MyEnigma

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

C++によるデザインパターン11: Composite パターン

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

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

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

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

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


Composite パターン

Compositeパターンは、

ある入れ物と、その中にあるデータの

共通部分を抽象クラスで切り出し、

入れ物とデータを同じようなオブジェクトとして扱う

デザインパターンです。


一般的には、

コンピュータのディレクトリとその中のファイルの関係を

コーディングする時などに使うと便利です。


またこのCompositeパターンでは、

入れ物の中に入れ物がある形をとるため、

おのずと再帰的で、ツリー形状の構造になります。


入れ物クラスのオブジェクトは、

オブジェクトが持っているデータを

先ほどの抽象クラスの形でもっているため、

その中身が入れ物であるのか、

それともデータであるのかを考えずに

アクセスすることができます。


上手くこのパターンを利用することで、

オブジェクトの種類を問わずに、

コピーや追加、削除など、

普通のPCではOSが行ってくれることのシンプルなバージョンを

自作してみることができるのです。

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

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

cpp/DesignPattern/Composite at master-AtsushiSakai/cpp

参考資料

myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com
myenigma.hatenablog.com


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

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

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

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

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