javaでのDecoratorパターン

Decoratorパターンは、その名の通りオブジェクトに次々とデコレート(飾りつけ)をし、機能を追加していくパターンです。
Compositeパターンと同じように再帰的なクラス構成とすることで、冗長性を排除します。

今回は、じゃんけんの手を作成するサンプルコードを作ってみました。
「グー」「チョキ」「パー」といった単純な手も作れますし、これらの手を作成するオブジェクトを何度も呼び出すことで「必殺グーチョキパー」のようなズルい手も作れる、というサンプルコードです。

【サンプルコード】

・Hands.java

・CreateEmptyHands.java

・DecorateHands.java

・DecorateRock.java

・DecorateScissors.java

・DecoratePaper.java

・HandsMain.java

【実行結果】


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

Compositeパターンと似たような話ですが、Compositeパターンは構造を再帰的に表現するのに対し、今回のDecoratorパターンは機能を再帰的に表現します。
ディレクトリ構造を扱う等ではない場合、Decoratorパターンの方が出番は多いかもしれません。

紹介したいデザインパターンはあと5パターンぐらいあるので、皆さまもう少しお付き合いください。
では、また次回!

カテゴリーjava

コメントを残す

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

CAPTCHA