35
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

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

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

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

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

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

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

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

35
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?