Bridgeパターン

      2016/11/08

個人的にはC++時代に有効だった手法かなと。
C#やJavaで使うとなるとインターフェースが存在するため、直接インターフェースを実装せずに1つオブジェクトを挟む感じでしょうか。

通常の継承

上記を継承したクラスを作成する場合、

上記でも問題ないが、例えば「ハイテンション状態なら、各戻り値を2倍する」。とかの仕様が追加になると、使用側もしくは各メソッドで判定が必要になる。
そこでBridgeパターンが登場です。

Bridgeパターン

橋渡しクラス

計算式実装クラス

ハイテンション状態で使用するクラス

ハイテンション状態かどうかを橋渡しクラスで判断させる場合

IsHighTension()はハイテンションかどうかを取得するメソッドを想定。

このサンプルではあまりメリットはありませんが、Bridgeパターンを使用することで、変更箇所が絞れました。
後々、実行時間を測定するケースが出てきそうな処理などはこういう風に実装しておくと、試験用・実運用などで切り分けが簡単になりそうです。

 - 設計 ,