设计模式 - 结构型 - 适配器

1、概念说明:

  适配器通常用于两个业务依赖时发现,无法如预期进行依赖链接,为了不破坏两个业务的完整性,这个时间就需要一个中间者进行转换,使业务可以顺利连接;

市面上的例子通常通过mac笔记本电脑要连接AVG的显示接头,但mac笔记本自身是不支持的,需要通过转换头(adpater适配器)转换后就可以使用了;但今天我想用电商里的例子来举例,研发的同学都知道,时下流行的微服务,如果我想完成一个下单支付的流程,实际上是会涵盖到order和pay服务、而实际上pay服务对外提供的逻辑是我的功能是支付,你若需要完成支付功能,那你就需要按照我的来,而order呢我就是一个订单,我就想支付而已,我理论上就应该把金额告诉你,你去完成支付就好,你这个pay服务给我一些我看不懂的参数,如商户号、商户名字的信息干什么,我看不懂呀, 这个时候就要adpater来进行适配中转,帮助两个服务之间完成这个操作;详细看下方代码

2、实战

public interface Target {

void OrderToPay(String orderNo, String money);

}


public class Adpaterimplements Target{

Paypay =new Pay();

    @Override

    public void OrderToPay(String orderNo, String money){

//适配后完成支付请求

        pay.toPay(orderNo, money,"商户号1", "商户名字1", "非对称", "无备注");

    }

}


public class Pay {

/**

    * 任何地方想去支付 都需要告知我这些信息(无论是用户支付、用户充值、用户抽奖支付或其他)

    */

    public void toPay(String orderNo, String money,String merhNo, String merName, String secrt, String rmark) {

System.out.println("订单号为:" + orderNo);

        System.out.println("商户号为:" + merhNo);

        System.out.println("已完成支付,支付金额:" + money);

    }

}


public class Actuatory {

public static void main(String[] args) {

Target adpaters =new Adpater();

        adpaters.OrderToPay("01","1500");

    }

}

执行结果:

订单号为:01

商户号为:商户号1

已完成支付,支付金额:1500

3、思考

适配模式在微服务模式或其他多人协助的工作方式下,一直被称为比较优的解决方案,推荐学习

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容