重学Java设计模式
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.3 模拟发放多种奖品

为了更贴近真实场景的实际开发,这里模拟互联网运营活动中营销场景的业务需求,如图4-2所示。由于营销场景存在复杂性、多变性、临时性,因此在研发设计时需要更加深入地了解业务需求;否则会经常面临各种紧急穿插的需求,让原本简单的增删改查(CRUD)实现变得臃肿不堪、代码结构极其混乱,最终难以维护,也无法防控风险。

图4-2

在营销场景中,经常会约定在用户完成打卡、分享、留言、邀请注册等一系列行为操作后进行返利积分操作。用户再通过这些返利积分兑换商品,从而让整个系统构成一个生态闭环,达到促活和拉新的目的。假设现在有如表4-1所示的三种类型的商品接口。

表4-1

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

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

·入参不同,发放优惠券需要仿重,兑换卡需要卡ID,实物商品需要发货位置(对象中含有)。

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