11
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

マンガでわかる Composite

22A3B8D3-DDDF-42F6-AA22-A2802BF3D318.png

ちょうぜつマジックショーへようこそ。こちらは、無限に続く多重下請けのイリュージョンでございます。いかがですか。

...いけない、おこられてしまう。

こういう、部分と全体が同じ形をした再帰的ツリー構造はかっこいいし、実際に扱いもシンプルでいいよねって、よくやりますね。そんなふうにモデルを一般化したものには Composite パターンという名前が付いています。

OS のファイルシステムは、ルートにディレクトリがあり、ディレクトリにはファイルとディレクトリが任意数入る。で、そこから取り出した 1 つのディレクトリに着目すると、それもまた、ファイルとディレクトリを持てる。Composite パターンの説明によくある例です。

当時とは違って、今なら HTML の DOM 構造も Composite パターンのいい例になるかもしれません。ルートタグ <html> があり、他の要素を持てる <div> などの要素と、テキストのみを持てて終端する <p> などの要素による、典型的な再帰構造です。プログラム言語をパースした AST も Composite と呼べるかもしれません。

多重下請けマジックショーでも、最後はたぶん、フリーランスの個人で終端します。発注者がやろうと思えば、最初の一次請けとだけではなく、二次請け三次請けの特定の会社と取引するとしても、基本的に同じオペレーションが可能です。

ええ、もちろんこれは、ちょうぜつアジャイルなワークスタイルのめもりーちゃんにしてみれば、軽いブラックジョークですから。ご安心を

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
11
Help us understand the problem. What are the problem?