用桥接模式(Bridge)实现开放接口系统

编程入门 行业动态 更新时间:2024-10-18 01:36:53

用<a href=https://www.elefans.com/category/jswz/34/1755939.html style=桥接模式(Bridge)实现开放接口系统"/>

用桥接模式(Bridge)实现开放接口系统

桥接模式是设计模式中比较难的一种,其原文叙述是:“将抽象部分与它的具体实现部分分离,使它们都可以独立地变化,属于结构型模式。”表述也很抽象,其本质是通过一个抽象类A的构造函数传入一个Interface类B作为参数,这样在实现抽象类A和实例化时,传入抽象类B的实现类,可以实现抽象类A和B的灵活配置,如此完成实现两个部分都可以独立变化的目的。

在软件系统开发中,开放接口系统的设计是比较常见的。开放接口系统一般也包含两个独立变化的部分:

一是鉴权系统,一般包括了token解析、时间戳的对比等,而且往往对接的各种系统都有自己的鉴权方式,不同系统鉴权模式各不相同。

二是接口数据,一般用于发送http请求或者从对方返回的http响应中获取数据(这里暂不讨论通过监听http接口接受被动访问的接口,那些接口一般用controller实现)。

这两个部分很适合用桥接模式实现:

//抽象化的鉴权类
public Interface Authenticator{void OperationAuth();}//具体鉴权类
public class ConcreteAuth implements Authenticator{//生成Token并放到请求头String token = TokenCreater.createToken(SessionManager.getSK());Request.addHeader(token);    
}//抽象的桥接类,包含了抽象的鉴权接口和抽象的HTTP请求方法
public abstract class AbstractionHttpInterface(){//这里通过构造函数,声明抽象的鉴权接口protected Authenticator auth;protected AbstractionInterface(Authenticator auth){this.auth = auth} //声明一个抽象的HTTP请求public abstract HTTPResponse SendHttpRequest(HttpRequest body);
}//实现一个具体的接口
class GetDeviceInterface extends AbstractionHttpInterface{//通过构造函数传递鉴权方法protected GetDeviceInterface(Authenticator auth) {super(auth);} //接口的请求体构造与实现方法public HTTPResponse SendHttpReques(HttpRequest body) {//这里写接口的具体请求方法return Request.sendRequest(body);}
}

注:以上代码并非完整代码,仅供理解原理。

使用:

//先声明鉴权方法Authenticator authMethod = new ConcreteAuth();//具体的设备数据获取类
AbstractionHttpInterface getDeviceRequest = new GetDeviceInterface(authMethod);getDeviceRequest.SendHttpRequest();

更多推荐

用桥接模式(Bridge)实现开放接口系统

本文发布于:2023-12-04 01:39:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1659379.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:桥接   接口   模式   系统   Bridge

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!