基于代理模式的接口调用示例
一、什么是代理
以产品销售为例,厂商生产出产品,但产品不对个人直接进行销售,而是供货给经销商,由经销商对个人进行销售。也就是说经销商从厂商取得了商品的代理销售权。每个经销商在销售产品时,价格可能都不一样,甚至个别还存在捆绑销售的情况。这里的经销商就充当了代理的角色。
于是就有这样的一种产品销售的关系:
厂商 -》 经销商X -》 个人
二、接口介绍
本文中用到的示例为一个第三方短信业务的API。该接口的API包括:单条发送接口、相同内容群发接口、个性化群发接口、个性化群发接口、模板发送接口、获取上行接口、获取状态报告接口、查询余额接口等。基于按需调用的原则,只实现其中某些接口。在使用代理模式进行开发,则每当开发新调用接口的逻辑代码时,不会对已有代码产生影响。
三、设计
1、交互流程
1)本地应用/服务请求API;
2)API返回结果;
3)调用回调方法对结果进行分析处理,执行对应的业务逻辑。
2、类设计
抽象的基类充当厂商的角色,派生类充当了不同的经销商的角色。派生类的差异主要体现在回调方法的逻辑,而它们都需要通过基类的接口请求方法与API进行交互,相当于厂商给经销商供货。每当要新增加一种接口调用时,只需要创建一个新的派生类即可。