Design-pattern-decorator-pattern
デザインパターン-デコレータパターン
デコレータパターンを使用すると、ユーザーは既存のオブジェクトの構造を変更せずに、新しい機能を追加できます。 このタイプのデザインパターンは、既存のクラスのラッパーとして機能するため、構造パターンの下にあります。
このパターンは、元のクラスをラップするデコレータークラスを作成し、クラスメソッドシグネチャをそのまま保持する追加機能を提供します。
シェイプクラスを変更せずに、ある色でシェイプを装飾する次の例で、デコレータパターンの使用を示しています。
実装
_Shape_インターフェースと、_Shape_インターフェースを実装する具体的なクラスを作成します。 次に、_Shape_インターフェイスを実装し、_Shape_オブジェクトをインスタンス変数として持つ抽象デコレータクラス_ShapeDecorator_を作成します。
_RedShapeDecorator_は、_ShapeDecorator_を実装する具象クラスです。
デモクラス_DecoratorPatternDemo_は、_RedShapeDecorator_を使用して_Shape_オブジェクトを装飾します。
ステップ1
インターフェイスを作成します。
Shape.java
ステップ2
同じインターフェースを実装する具体的なクラスを作成します。
Rectangle.java
Circle.java
ステップ3
_Shape_インターフェイスを実装する抽象デコレータクラスを作成します。
ShapeDecorator.java
ステップ4
_ShapeDecorator_クラスを拡張する具体的なデコレータクラスを作成します。
RedShapeDecorator.java
ステップ5
_RedShapeDecorator_を使用して、_Shape_オブジェクトを装飾します。
DecoratorPatternDemo.java
ステップ6
出力を確認します。