あらかじめ用意しておいた「原型」からインスタンスを生成するようにするためのパターン
- 原型となるオブジェクトを生成するのにコストがかかったり、複雑な場合、隠蔽できる
- オブジェクトの型を知らなくても新しいオブジェクトを取得できる
- オブジェクトのコピーを生成することが複雑だったりする
- OSファイルシステム
- フォルダにはファイルとフォルダが含まれ、ファイルやフォルダが含まれる
- 各ファイルとフォルダーは、inodeインターフェイスで表すことができる
- inodeインターフェースにもclone機能がある
- fileとfolder構造体はどちらもタイプ
- printとclone関数のinode typeを実装