設計モード13——Bridge設計モード


Bridgeブリッジ設計モードは、単一の要因の変化を達成するために、1つの機能(実装)のセットを別の機能を使用する他のオブジェクト(動作)のセットから分離し、オブジェクト呼び出しを使用して2つのグループを関連付け、問題の動作と実装を分離して実現し、継承の代わりに集約することによってサブクラスの爆発的な成長の問題を解決する.Bridgeブリッジ設計モード構造は以下の通りである.
また、Bridgeブリッジ設計モードを図面を例に示します.例コードは以下の通りです.
//  
interface Shape{
public void doDraw();
}
class Circle implements Shape{
	private Drawing draw
	public Circle(Drawing draw){
	this.draw = draw;
}
public void doDraw(){
	draw.draw();
}
}
class Rectangle implements Shape{
	private Drawing draw
	public Rectangle(Drawing draw){
	this.draw = draw;
}
public void doDraw(){
	draw.draw();
}
}
//  
interface Drawing{
	public void draw();
}
class SolidDrawing implements Drawing{
	public void draw(){
	System.out.println(“Drawing solide line…”);
}
}
class DashDrawing implements Drawing{
	public void draw(){
	System.out.println(“Drawing dash line…”);
}
}
public class BridgeDemo{
	public static void main(String[] args){
	//       
	Drawing draw1 = new SolidDrawing();
	Shape shape1 = new Circle(draw1);
	shape1.doDraw();
//        
	Drawing draw2 = new DashDrawing();
	Shape shape2 = new Rectangle(draw2);
	shape2.doDraw();
}
}

上の例のコードだけではBridgeブリッジ設計モードを完全に理解できない可能性があり、上の円形と矩形は動作であり、実線画法と破線画法は実現であり、動作インタフェースShapeは集約的にインタフェースDrawingを参照して実現し、動作と実現のブリッジに達した.3番目のグラフィック三角形を追加する必要がある場合は、実装部分には影響しません.3番目の画法の折れ線画法を追加すると、グラフィック動作部分に影響を及ぼさず、動作を松結合の実現から分離します.システムに2つの可変要素がある場合、すなわち問題の挙動と問題の実現が変化している場合、従来の実現方式は、橋梁モードの使用に適した爆発をもたらす可能性があります.
デザインモデルを学ぶ人はBridgeブリッジデザインモデルとStrategy戦略デザインモデルを区別できないことが多いが、個人的には両者の簡単な違いは以下のように感じられる.
(1).Bridgeブリッジ設計モードでは,変化可能であるだけでなく,問題挙動も変化可能であり,両者の変化は互いに独立しており,両次元に変化がある場合にブリッジモードの使用を優先的に考慮している.
(2).Strategyポリシー設計モードでは,アルゴリズム実装ポリシーの変化のみが存在し,問題挙動は不変,すなわち1次元の変化のみである.また,ポリシーモードで考慮されるアルゴリズム階層の変化は,無状態,無データである.
JDKにおけるブリッジモードの応用:

AWT

JDBC