- ベストアンサー
Adapterデザインパターン
Adapterデザインパターンは、 継承を利用した実装パターンと、 委譲を利用した実装パターンがあると思います。 http://www.techscore.com/tech/DesignPattern/Adapter/Adapter1.html/ 「親クラスにバグがあって修正した場合、 必ず子クラスも再コンパイルしなければならない」 ということを考えると、 保守性は高いのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
提示されたページを読みましたが、その中に > 「親クラスにバグがあって修正した場合、 > 必ず子クラスも再コンパイルしなければならない」 という記述は見つかりませんでした。 というか、この文、継承の弱点の一つですよね。 その弱点が気になるならば委譲を使った実装パターンを使えばいいだけのことです。
その他の回答 (1)
- teketon
- ベストアンサー率65% (141/215)
回答No.2
何を聞きたいのかよくわかりません。 以下のどちらかを聞いているのでしょうか? ・Adapterパターンは継承、移譲の2実装があるから保守性が高い ・Adapterパターンの継承、または移譲の実装はどちらかが保守性が高い 保守性とは何を指していますか? 何と何を比較していますか? この辺を明らかにしないとよくわからない質問と回答になると思います。
質問者
お礼
ありがとうございます。 「アダプタクラスに不具合があったとき、そのアダプタクラスを使用しているクラスの再コンパイル」が発生しないことを 保守性が高い、 逆に再コンパイルが必要な場合、 保守性が低い、としたときに、 (1)継承で作ったアダプタクラスと、 (2)委譲で作ったアダプタクラスで、 どちらが保守性が高いか? を確認したいです。 委譲のパターンの方が保守性が高いと捉えていますが合っていますでしょうか?
お礼
ありがとうございます。 アダプタ機能の目的は、 インタフェースの差違を吸収するためと捉えていますが、 (1)1つの機能を、n種類のインタフェースでコールしたい場合 ⇒ 継承の方のパターンを使い、 オーバーロードで色んな形で呼べるようにする (2)n種類のクラスがそれぞれバラバラのインタフェースから、1つの機能をコールしたい場合 ⇒ 差違を吸収するためだけのクラスに委譲 というのがよいのかな?と感じました。