Java ブリッジ パターン (ブリッジ パターンとも呼ばれます) (ブリッジ パターン) は、抽象化と実装を独立して変更できるように分離する設計パターンです。一連の密接に関連したクラスを 2 つの個別の階層に分割し、1 つは抽象クラスまたはインターフェイスを含み、もう 1 つは実装クラスを含みます。ブリッジ パターンでは、抽象クラスと実装クラスを独立して変更できるため、疎結合が実現されます。
## Java では、ブリッジ パターンは通常、インターフェイスを使用して抽象部分を定義し、抽象クラスを使用して部分的な実装を実装し、それらを組み合わせて結合します。抽象部分には、参照の一部を実装する場合のみが含まれます。実装部分はインターフェイスを実装します。 Java ブリッジ モードは次の 4 つの役割に分かれています。public interface PaymentImplementor { /** * 支付 * * @param amount */ void processPayment(double amount); }
public class AliPaymentImplementor implements PaymentImplementor { /** * 支付 * * @param amount */ @Override public void processPayment(double amount) { System.out.println("支付宝支付:" + amount + "元..."); } } public class WechatPaymentImplementor implements PaymentImplementor { /** * 支付 * * @param amount */ @Override public void processPayment(double amount) { System.out.println("微信支付:" + amount + "元..."); } } public class UnionpayPaymentImplementor implements PaymentImplementor { /** * 支付 * * @param amount */ @Override public void processPayment(double amount) { System.out.println("银联支付:" + amount + "元..."); } }
public abstract class Payment { protected PaymentImplementor implementor; public Payment(PaymentImplementor implementor) { this.implementor = implementor; } /** * 支付 * * @param amount */ public abstract void pay(double amount); }
public class OnlinePayment extends Payment{ public OnlinePayment(PaymentImplementor implementor) { super(implementor); } /** * 支付 * * @param amount */ @Override public void pay(double amount) { System.out.println("开始在线支付..."); implementor.processPayment(amount); System.out.println("在线支付完成..."); } }
public class Demo { public static void main(String[] args) { // 支付宝支付 PaymentImplementor paymentImplementor = new AliPaymentImplementor(); Payment payment = new OnlinePayment(paymentImplementor); payment.pay(100); System.out.println(); // 微信支付 paymentImplementor = new WechatPaymentImplementor(); payment = new OnlinePayment(paymentImplementor); payment.pay(101); System.out.println(); // 银联支付 paymentImplementor = new UnionpayPaymentImplementor(); payment = new OnlinePayment(paymentImplementor); payment.pay(102); } }
利点
抽象部分と実装部分を分離して、独立して変更できるようにします。これにより、システムの柔軟性とスケーラビリティが向上します。
ブリッジ パターンは継承の使用を回避できます。クラス爆発の問題は、組み合わせ関係を使用しているように見えるため発生します。
欠点
ブリッジ モードではシステムの複雑さが増し、追加の抽象化レイヤーが必要になります。抽象化レイヤーにより、システム設計が複雑になる可能性があります。ブリッジ インターフェイスと実装クラスが適切に設計されていない場合、システムの結合が増加する可能性があります。
クラスが複数ある場合寸法を変更する場合 (たとえば、シェイプ クラスの色やサイズが異なる場合)、ブリッジ パターンを使用してそれらを分離し、システムをより柔軟にすることができます。
さまざまなサイズをサポートする必要がある場合プラットフォーム、データベース、またはプロトコルに応じて、ブリッジ パターンを使用してこれらの実装の詳細をカプセル化し、クライアントと実装の部分を相互に影響を与えることなく個別に変更できるようにします。
以上がJava ブリッジ設計パターンを使用して抽象化を実装からエレガントに分離する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。