概要
ブリッジモードは、主に対処する構造モデルです。実際のニーズにより、クラスには2つ以上の次元の変更があります。継承が使用された場合、このニーズは達成されないか、設計が非常に肥大化しません。
ブリッジモードは、変化する部分を抽象化し、変化する部品をメインクラスから分離し、それにより複数の次元の変化を完全に分離することです。最後に、さまざまな次元の変化を組み合わせるために管理クラスが提供され、この組み合わせはビジネスのニーズを満たすために使用されます。
UML構造図
コードの例
パッケージインタビュー;インターフェイス実装者{void operationImpl();}抽象クラスabstract {protected実装者実装者; public Abstract(実装者実装者){this.implementor = emblicor; } public void operation(){exponmentor.operationImpl(); }} class concreteteimplementoraは実装者を実装します{@Override public void operyingimpl(){system.out.println( "特定の実装a"); }} class concreteteimplementorb実装者{@override public void operyingimpl(){system.out.println( "特定の実装b"); }} class RefinedAbstractionはAbstract {public RefinedAbstraction(実装者実装者){super(emblicor); } public void otherOperation(){system.out.println( "その他の操作"); }} public class maintest {public static void main(string arg []){emblicor explmentor = new Concreteimplementora(); RefinedAbstraction Abstraction = new RefinedAbstraction(実装者); abstraction.operation(); abstraction.oteroperation(); }}シナリオを使用します
1.抽象化および実装パーツに固定バインディング関係を採用したくない場合は、ブリッジモードを使用して抽象化と実装パーツを分離し、プログラム操作中に抽象化に必要な特定の実装を動的に設定し、特定の実装を動的に切り替えることもできます。
2。抽象的な部分と実装部分の両方を拡張できる場合、ブリッジモードを使用して、抽象的な部分と実装部分を独立して変更できるように、拡張を一緒にかき混ぜるのではなく柔軟に拡張できるようにします。拡張の片側は反対側に影響を与える可能性があります。
3.部分的な変更を実装したい場合、顧客には影響しません。ブリッジモードを使用できます。顧客は抽象指向のインターフェイスを実行しています。部分的な変更は、抽象的な部分とは独立している可能性があり、顧客には影響しません。また、顧客に対して透明であると言えます。
4.継承された実装スキームが採用されている場合、多くのサブクラスが生成されます。この場合、ブリッジモードを使用して関数の変更の理由を分析して、それらを異なる寸法に分離できるかどうかを確認し、ブリッジモードで分離してサブクラスの数を減らすことを検討できます。
システムが構築された抽象化とコンクリート化された役割の間に柔軟性を高める必要がある場合は、2つのレベル間に静的接続を作成しないようにします。
抽象文字とコンクリート文字の両方がサブクラス化できるはずです。この場合、ブリッジパターンは、さまざまな抽象的な役割と具体的な役割を柔軟に組み合わせて、独立して拡張できます。
設計の変更には、実装の役割がクライアントに影響を与えないか、実装の役割の変更がクライアントに対して完全に透過的であることが必要です。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。