Java设计模式<桥接模式>

Java设计模式<桥接模式>

意图

桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化 简单言之,就是以聚合的方式代替继承.

场景

  • 实现系统可能有多个角度分类,每一种角度都可能变化.

场景举例

支付宝支付和微信支付都支持支付功能,在调用的时候都支持MD5签名和RSA签名,如果将两种支付方式封装成统一的接口调用,可以尝试使用该中设计模式,减少类的爆炸增长。

继承方式实现

聚合Demo

上层API

public abstract class PayService {

    protected PayEncrypt payEncrypt;

    public abstract boolean pay();
}

支付宝支付Alipay

public class Alipay extends PayService {

    public Alipay(PayEncrypt payEncrypt) {
        super();
        super.payEncrypt = payEncrypt;

    }

    public boolean pay() {
        System.out.println("支付宝支付支付");
        payEncrypt.sign();
        return false;
    }
}

微信支付


public class WechatPay  extends  PayService{

    public WechatPay(PayEncrypt payEncrypt) {
        super();
        super.payEncrypt = payEncrypt;

    }

    public boolean pay() {
        payEncrypt.sign();
        return false;
    }
}

定义加密签名接口PayEncrypt

public class MD5Encrypt implements PayEncrypt{

    public String sign() {
        System.out.println("采用MD5签名");
        return "采用MD5签名";
    }
}

RSAEncrypt实现

public class RSAEncrypt implements PayEncrypt{

    public String sign() {
        return "采用RSA签名";
    }
}

MD5Encrypt

public class MD5Encrypt implements PayEncrypt{

    public String sign() {
        System.out.println("采用MD5签名");
        return "采用MD5签名";
    }
}

测试类

public class DemoMain {


    public static void main(String[] args) {
        PayService payService = new Alipay(new MD5Encrypt());
        payService.pay();
    }
}

貌似加密方式暴露到了上册代码中,但是可以通过建造者模式将对象创建出来,项目中往往是多种设计模式的组合

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 场景 商城系统中常见的商品分类,以电脑为例,如何良好的处理商品分类销售的问题? 下图的关系我们可以用多继承结构来实...
    GaaraZ阅读 4,326评论 0 1
  • Java设计模式之桥接模式 回顾 上一期分享了适配器模式,主要为了实现解耦 桥接模式 简介 桥接模式是对象的结构模...
    icyage阅读 1,531评论 0 0
  • 1 场景问题# 1.1 发送提示消息## 考虑这样一个实际的业务功能:发送提示消息。基本上所有带业务流程处理的系统...
    七寸知架构阅读 10,537评论 5 63
  • 桥接模式就是创建一道桥梁来连接两种类,一般都是对抽象和实现的桥接。对于那些不希望使用继承或因为多层次继承导致系统类...
    留给时光吧阅读 1,670评论 1 1
  • ​敦煌徒步三天两夜,有两夜是在大漠上度过的,十几人一个帐篷(男女混账哦)手机基本没有信号。我的手机经常是没有服务的...
    大伟传说阅读 3,258评论 2 4

友情链接更多精彩内容