Adapter パターン
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/01/13 01:36 UTC 版)
|
|
この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。(2023年1月)
|
Adapter パターン(アダプター・パターン)とは、GoF によって定義されたデザインパターンの1つである。Adapter パターンを用いると、既存のクラスに対して修正を加えることなく、インタフェースを変更することができる。Adapter パターンを実現するための手法として継承を利用した手法と委譲を利用した手法が存在する。それぞれについて以下の節で説明する。
継承を利用したAdapter
継承を利用したAdapterは、利用したいクラスのサブクラスを作成し、そのサブクラスに対して必要なインタフェースを実装することで実現される。
サンプルプログラム
下記の例において、Productクラスは既存のクラスであり修正できないものとする。 ここで、Productクラスを利用したい開発者がいて、 その開発者はgetPriceというメソッドでProductの値段を取得したいとする。 この場合、ProductAdapterというAdapterを作成することで、既存クラス(Product)クラスを修正することなく、 異なるインタフェースを持たせることができる。 このように、既存クラスを修正することなく、異なるインタフェースを持たせるということが、Adapter パターンの役割である。
interface ProductPrice{
public int getPrice();
}
class Product{
private int cost;
public int getCost(){
return cost;
}
}
class ProductAdapter extends Product implements ProductPrice{
public int getPrice(){
return this.getCost();
}
}
クラス図
継承を利用したAdapterのクラス図は以下のようになる。
参考までに、上のサンプルコードとこのクラス図との対応を示す。
- Target
- ProductPrice
- Target#requiredMethod
- ProductPrice#getPrice()
- Adapter
- ProductAdapter
- Adapter#requiredMethod
- ProductAdapter#getPrice()
- Adaptee
- Product
- Adaptee#oldMethod
- Product#getCost()
委譲を利用したAdapter
委譲を利用したAdapterは、利用したいクラスのインスタンスを生成し、そのインスタンスを他クラスから利用することで実現される。
サンプルプログラム
interface ProductPrice{
public int getPrice();
}
class Product{
private int cost;
public int getCost(){
return cost;
}
}
class ProductAdapter implements ProductPrice{
private Product product = new Product();
public int getPrice(){
return product.getCost();
}
}
クラス図
委譲を利用したAdapterのクラス図は以下のようになる。
※上図において、extendsはimplementsでも良い。
こちらのほうも、参考までにサンプルコードの対応を示す。
- Target
- ProductPrice
- Target#requiredMethod()
- ProductPrice#getPrice()
- Adapter
- ProductAdapter
- Adapter#requiredMethod()
- ProductAdapter#getPrice()
- Adaptee
- Product
- Adaptee#oldMethod()
- Product#getCost()
「Adapter パターン」の例文・使い方・用例・文例
- そのような行動のパターンが多い
- 君の服装はいつもワンパターンだな。
- 周りの文化の行動パターンを取り入れることの重要さを彼は強調した。
- 母馬は通常毎年同じ分娩パターンを繰り返す。
- ウェザーマーチャンダイジングは、消費者の行動パターンを分析するために、天候に焦点をあてる。
- エリアマーケティングは消費者の行動パターンを探る上で地域を重要視する。
- チャートの二番底のパターン
- 下記のパターンに従って
- 私は彼の行動パターンを学んだ。
- そのノズルは7つのパターンで散水ができるようになっています。
- 同じパターンで用いても違いが生じる。
- 同じパターンを用いても違いが出来ます。
- このように、名詞の変化のパターンがある他に、動詞の語形変化も現代英語よりもいろいろな種類がありました。
- 離れることで全体が見渡せるようになり、今度はそれで、ある程度のパターン認識ができるようになるのである。
- 南諸島のコミュニティの中にはまったくの正反対の血縁関係のパターンが観察されるであろう。
- 世界貿易の変動パターンが次の表で明らかにされている。
- 居酒屋で飲んで、カラオケか。俺達もワンパターンだな。
- この母音変化はそれぞれの単語に指定される全体のアクセントパターンと大いに関係している。
- この氷結と氷解のパターンが、北極熊の主な獲物であるアザラシの分布と数に影響を与えるのだ。
- 彼とデートしたっていつもワンパターンなんだからあきちゃうのよ.
- Adapter_パターンのページへのリンク
