JavaのデザインパターンDecorator

JavaのデザインパターンDecorator

Decoratorパターンは、既存クラスに対してデコレート(装飾)していくデザインパターンです。

既存クラスありきで、その既存クラスを変更することなく、Decoratorクラスを作成していって既存クラスに対して装飾するデザインパターンがDecoratorパターンになります。

メリット

  • 既存クラスの修正が不要

既存クラス

Coffeeクラスがあるとします。priceメソッドで値段を返します。

Decoratorクラス

Coffeeクラスを継承した抽象クラスDecoratorを作成します。Coffeeクラスを装飾するのがDecoratorなので、Coffeeクラスを継承します。

引数に具象クラスCoffeeのインスタンスを渡します。

装飾するクラスはDecoratorを継承

コーヒーに対してミルクを追加します。

Milkクラスを作成してCoffeeクラスに対して装飾します。その際MilkクラスはDecoratorクラスを継承します。(要するにMilkクラスはDecorator)

ここではミルクは10円としています。

呼び出し側

呼び出す側はCoffeeクラスのインスタンスを生成し、Milkクラスでラップします。

これで既存クラスを修正せずにMilkクラスでラップすることによりデコレートすることが出来ます。

コメントをどうぞ

メールアドレスが公開されることはありません。

CAPTCHA