工厂模式设计思路

1.营销场景用户通过积分这些返利积分兑换商品;

1.优惠劵接口:CouponResult endCoupon(String uId,String couponNumber,String uuid);

2.实物商品:Boolean deliverGoods(DeliverRed req);

3.第三方兑换卡 void grandToken(String bindMobileNumber,String cardId);

以上接口来看,有如下信息。

   三个接口返回类型不同,有对象类型,布尔类型和空类型。

 入参不同,发放优惠劵需要防重,兑换卡需要ID,实物商品需要发货位置。

可能会随着后续业务的法杖,新增其他的商品类型。应为所有的开发需求都是由业务对市场的拓展带来的。

解决方案一:如果直接用if else可以直接解决,如果后续的迭代中要实现迭代,使用越久,测试回归验证时间越长,带来的风险也会越高。

解决方案二:

定义一个发奖接口:对于所有的奖品,无论是实物商品,优惠劵还是第三方兑换卡,都需要通过程序实现此接口并处理,这样的方式可以保证入参和出参的统一性。

接口入参包括用户ID,奖品ID,业务ID,及扩展字段extMap;

实现三种发奖接口,

创建工厂类getCommodityService

一种是依赖奖品类型,另一种根据奖品类信息进行实例化。

例如后续如果有非常多的奖品类型,实现的子类需要技术扩张,因此需要使用其他的模式进行优化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值