各位前辈周末好,今天我还在加班,无休不止996(常通宵)
现在我做的订单模块,经常需要修改下单部分的代码,可是经常修改这部分的代码对整个订单系统的稳定非常不利。
修改的原因往往是因为促销策略、优惠策略的增加,比如买十送一,买满多少每件商品减多少元等策略
可是我想不到除了修改代码以外更好的方法了,希望各位前辈能指导一下,给点建议意见,谢谢各位前辈了
各位前辈周末好,今天我还在加班,无休不止996(常通宵)
现在我做的订单模块,经常需要修改下单部分的代码,可是经常修改这部分的代码对整个订单系统的稳定非常不利。
修改的原因往往是因为促销策略、优惠策略的增加,比如买十送一,买满多少每件商品减多少元等策略
可是我想不到除了修改代码以外更好的方法了,希望各位前辈能指导一下,给点建议意见,谢谢各位前辈了
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
说一说我的一点看法:
一、优惠策略有多种形式,但是无论哪种都是在所选购商品种类、数量以及订单金额上做文章,因此可以设计一个通用的过滤器Filter,它接受一个订单(账号、商品号、数量、单价、总价)作为输入,同时返回一个新的订单(账号、商品号、数量、单价、总价、优惠类型),每一个Filter都可以在内部定义一套优惠方案。
二、优惠策略的组合方式有
等多种情况。
因此为Filter设计一套组合系统:
每一个Filter内部都可以由其他的Filter组合而成,并有如下几种方式:
三、针对常见的优惠(如满减、满送、折扣等)做一套模板,可以随时使用参数进行实例化:
例如满减:
OffAtFilterFactory(type, off, at)
可以指定type类型商品满at的时候减去off,并产生一个相应的Filter以供使用。每出现新的优惠,就手动画一画图,把优先级、串并联关系捋清,然后从最内层开始构造Filter,层层嵌套起来(想来也不会超过三层吧)。
之后做一套配置系统,使用XML也好JSON也好,可以直接把优惠写在配置文件里,Filter的生成、组合都由程序读取配置文件后自动进行。
最好的莫过于做一套图形化配置系统,可以通过拖模块画图的方式来写生成配置文件。
实现的话,简单说一下吧,做到手动写Filter还是不难的,至于怎么根据配置文件生成代码,就需要较大篇幅这里就不提了。
看你加了Java话题,我没正经用过Java,就只说一下伪代码哈哈:
上面这些就足够实现三种优惠组合方案啦。