type
status
date
slug
summary
tags
category
icon
password

一、定义

notion image
适配器模式:将一个类的接口适配成用户所期待的那样,一个适配允许通常因为接口不兼容的不能在一起工作的类,使其在一起工作,做法是将自己的接口包裹在一个已存在的类中

二、示例:

模拟场景: 例如:1、80,90后应该了解万能充电器,实现对各种规格的电池充电功能,这就是生活中典型的适配器, 例如:2、某些大型的些营销系统,⼤部分常⻅的都是裂变、拉客,例如;你邀请⼀个⽤户开户、或者邀请⼀个⽤户下单,那么平台就会给你返利,多邀多得。同时随着拉新的量越来越多开始设置每⽉下单都会给⾸单奖励,等等,各种营销场景。
那么这个时候做这样⼀个系统就会接收各种各样的MQ消息或者接⼝,如果⼀个个的去开发,就会耗费 很⼤的成本,同时对于后期的拓展也有⼀定的难度。此时就会希望有⼀个系统可以配置⼀下就把外部的 MQ接⼊进⾏,这些MQ就像上⾯提到的可能是⼀些注册开户消息、商品下单消息等等。
例如:3、大型的商城系统,用户服务模块可能会调用其他第三方的接口。接口的返回参数和名字都不一样,对于用户是否是首单有各种不一样的判断规则。这时我们需要整合一个适配器通用所有规则

传统编码方式

一旦扩充新的类型消息,需要转换字符,扩充修改代码

适配器模式

定义统一处理的类,所有的第三方mq消息,最终会转换此格式:RebateInfo
定义适配器,适配所有字段,并且转换:MQAdapter
测试:ApiTest
是否为首单的判断,定义统一的规则,抽象接口:IOrderService
本地的首单规则修改:OrderServiceImpl
第三方的首单规则修改:POPOrderServiceImpl
测试:ApiTest

UML关系图(适配器模式)

定义一个适配器,统一规则
notion image
定义统一规则IOrderService,都去实现此规则:OrderServiceImpl、POPOrderServiceImpl
 
notion image
总结: 从上⽂可以看到不使⽤适配器模式这些功能同样可以实现,但是使⽤了适配器模式就可以让代码:⼲净整洁易于维护、减少⼤量重复的判断和使⽤、让代码更加易于维护和拓展。
尤其是我们对MQ这样的多种消息体中不同属性同类的值,进⾏适配再加上代理类,就可以使⽤简单的配置⽅式接⼊对⽅提供的MQ消息,⽽不需要⼤量重复的开发。⾮常利于拓展。
 
JAVA【设计模式】原型模式JAVA【设计模式】桥接模式
IT小舟
IT小舟
微信公众号:IT小舟
公告
type
status
date
slug
summary
tags
category
icon
password
notion image
你好,我是小舟。 欢迎来到我的博客,我喜欢运动、阅读、音乐和写作。如果有什么想要交流的,可以加我微信:upcodezhou。再次感谢你的光临!
notion image