javaでのCompositeパターン

Compositeパターンは、入れ物のクラスと中身のクラスを1つの抽象クラスでまとめ、同一視できるようにするパターンです。
このパターンを取り入れることで、クラスを使う側から見て入れ物のクラスなのか中身のクラスなのかを意識する必要がなくなります。

ファイルシステムの例が多いですが、理解を深めるために今回はあえて別の例を出して説明します。
袋と本・ゲームソフトの例を出して説明します。
単に袋の中に本やゲームソフトを入れるだけでなく、袋が破れないように袋を二重にする(袋の中に袋を入れる)こともありますし、袋の中に本用の袋とゲームソフト用の袋を入れて分類することもあります。
このような場合、Compositeパターンを用いることで、袋でも本・ゲームソフトでも同じように処理することができるようになります。

【サンプルコード】

・Entry.java

・Book.java

・GameSoft.java

・Bag.java

・EntryMain.java

【実行結果】


いかがでしたでしょうか。

今回紹介したデザインパターンは、ファイルシステムを扱う時等に役に立つのではないかと思います。
このような再帰的なパターンを自力で思いつくのは難しいと思うので、デザインパターンから学んでおくのが良いと思います。

これからも、役に立つデザインパターンを紹介していこうと思います!

カテゴリーjava

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA