Decorator パターン
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/02 10:14 UTC 版)
ナビゲーションに移動 検索に移動Decorator パターン(デコレータ・パターン)とは、GoF(Gang of Four; 4人のギャングたち)によって定義されたデザインパターンの1つである。 このパターンは、既存のオブジェクトに新しい機能や振る舞いを動的に追加することを可能にする。
クラス図
Decorator パターンのクラス図を以下に挙げる。
概要
Decorator パターンの方針は、既存のオブジェクトを新しい Decorator
オブジェクトでラップすることである。
その方法として、Decorator
のコンストラクタの引数でラップ対象の Component
オブジェクトを読み込み、コンストラクタの内部でそのオブジェクトをメンバに設定することが一般的である。
Decorator パターンは、既存のクラスを拡張する際にクラスの継承の代替手段として用いられる。継承がコンパイル時に機能を拡張するのに対し、Decorator パターンはプログラムの実行時に機能追加をする点が異なる。
![]() | この節の加筆が望まれています。 |
利用例
Java による利用例を以下に挙げる。
/** 価格をあらわすインタフェース */
interface Price{
int getValue();
}
/** 原価を表すクラス */
class PrimePrice implements Price{
private int value;
PrimePrice(int value){
this.value = value;
}
public int getValue(){
return this.value;
}
}
/** マージンを介する価格 */
abstract class MarginPrice implements Price{
protected Price originalPrice;
MarginPrice(Price price){
this.originalPrice = price;
}
}
/** 設定された利益を仕入れ価格に上乗せする Price */
class WholesalePrice extends MarginPrice{
private int advantage;
WholesalePrice(Price price, int advantage){
super(price);
this.advantage = advantage;
}
public int getValue(){
return this.originalPrice.getValue() + advantage;
}
}
/** 仕入れ価格の 2 倍の値段を提示する Price */
class DoublePrice extends MarginPrice{
DoublePrice(Price price){
super(price);
}
public int getValue(){
return this.originalPrice.getValue() * 2;
}
}
public class DecoratorTest{
public static void main(String[] argv){
System.out.println(
new WholesalePrice(
new DoublePrice(
new WholesalePrice(
new DoublePrice(
new PrimePrice(120)
)
,80
)
)
,200
)
.getValue()
);
}
}
クラス図との関連は以下の通りである。
- Component
Price
- ConcreteComponent
PrimePrice
- Decorator
MarginPrice
- ConcreteDecorator
WholesalePrice
,DoublePrice
関連項目
|
「Decorator パターン」の例文・使い方・用例・文例
- そのような行動のパターンが多い
- 君の服装はいつもワンパターンだな。
- 周りの文化の行動パターンを取り入れることの重要さを彼は強調した。
- 母馬は通常毎年同じ分娩パターンを繰り返す。
- ウェザーマーチャンダイジングは、消費者の行動パターンを分析するために、天候に焦点をあてる。
- エリアマーケティングは消費者の行動パターンを探る上で地域を重要視する。
- チャートの二番底のパターン
- 下記のパターンに従って
- 私は彼の行動パターンを学んだ。
- そのノズルは7つのパターンで散水ができるようになっています。
- 同じパターンで用いても違いが生じる。
- 同じパターンを用いても違いが出来ます。
- このように、名詞の変化のパターンがある他に、動詞の語形変化も現代英語よりもいろいろな種類がありました。
- 離れることで全体が見渡せるようになり、今度はそれで、ある程度のパターン認識ができるようになるのである。
- 南諸島のコミュニティの中にはまったくの正反対の血縁関係のパターンが観察されるであろう。
- 世界貿易の変動パターンが次の表で明らかにされている。
- 居酒屋で飲んで、カラオケか。俺達もワンパターンだな。
- この母音変化はそれぞれの単語に指定される全体のアクセントパターンと大いに関係している。
- この氷結と氷解のパターンが、北極熊の主な獲物であるアザラシの分布と数に影響を与えるのだ。
- 彼とデートしたっていつもワンパターンなんだからあきちゃうのよ.
- Decoratorパターンのページへのリンク