对接多个第三方API时,可使用到那几种设计模式?
问题描述
因项目需要,要对接N个第三方API,再将请求API返回的数据转换成自有项目的数据结构,第三个API有可能是一个已经封装好的SDK,有可能是一个URL,也有可能是restful风格的API。
为了便于以后扩展及维护,大多数选用那几种设计模式进行开发会比较好?
现我想到的是抽象工厂及模板相结合,
用抽象工厂模式,将公用部分抽取出来实现
用模板模式,实现抽象方法
还有什么更好的,请讨论。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据你的描述我觉得可能这和设计模式没有关系。
而应该用分层设计。
比如典型的例子是:展示层,业务层,数据层。
然后在数据层才会用到设计模式等,比如可以用工厂模式来创建不同的第三方服务。
首先,根据自有项目数据结构和应用场景,定义数据获取的接口(每个场景对于一个接口,可能会有多个接口),从而将接口定义和具体实现分割。
对于不同的实现方式(SDK、URL、Restful)定义主流程,比如Restful主流程包括:
a. 输入参数验证
b. 输入参数到restful参数转化(将接口输入参数,转化给restful参数)
c. restful接口调用
d. restful返回结果解析(成功、失败)
e. restful返回结果转化(将结果转化为自有数据结构)
根据具体实现继承自2创建的模板类,并实现1创建的业务接口,通过完成模板回调方法,完成整个业务。
如果有其他需要,比如统一日志、统一性能监控,可以使用proxy模式