当前位置:编程学习 > C#/ASP.NET >>

请教怎么设计促销活动比较合理

请教各位前辈促销活动的代码怎么设计或者采用哪种设计模式比较合理

需求:促销模式肯定有很多种,例如 满额送赠品,满额减10元,半价优惠等等活动

这些实际的促销活动都不是固定的,可能顾客随时会添加一种新的促销模式

现在应该怎么设计代码,实现新促销的接口代码之后,只要配置一下就可以使用呢? 设计模式 --------------------编程问答-------------------- 怎么没有人回复呢,大家都回家过年了吗? --------------------编程问答-------------------- 不可能
因为你不可能事先把促销相关的因素都确定好。
要么你提供现成的促销方案让选择,要么定义一个接口等有促销的要求了再具体实现。
--------------------编程问答--------------------
个人觉得在做的过程中可能会偏向于适配者 --------------------编程问答-------------------- 归纳总结出所有的促销模式,再设计,促销模式虽然多,但是并非无限地多。

相反,脱离了业务追求无限的扩展性,才是徒劳无益的。 --------------------编程问答-------------------- 把所有的促销看成一个规则,
规则包括促销时间:开始时间和结束时间 
商品的范围:单个商品,一组商品,商品的一个大类,整网商品
享受规则的条件:会员等级,所有注册会员,生日会员,指定会员
规则的优惠:1.满额减 2.阶梯价格(团购)3.赠品 4.优惠券
--------------------编程问答-------------------- 所谓哪一种了,这个是个综合的设计
适配,策略,组合都有可能用到。 
满赠也好,满减也罢,还是折扣。其实都可以抽象成一种方式
那么基于这个抽象,后面的逻辑比较有可能的就是策略和组合。在实际使用上,肯定还有判定条件。判定条件肯定可以转换成语法树。 --------------------编程问答-------------------- 你可以把处理流程变成可配置的。 --------------------编程问答--------------------
引用 楼主 children0410 的回复:
请教各位前辈促销活动的代码怎么设计或者采用哪种设计模式比较合理

谈到实际的开发,这里讨论“设计模式”就很荒唐了。设计模式是给那些闲着没事的学生把玩儿的。

而你需要向有经验的业务经理学习零售业知识! --------------------编程问答-------------------- 其实有点经验的开发人员都知道,真正的程序设计师跟那些刚做开发的人的主要区别就在于前者不会随便“仅仅道听途说一些名词儿”就轻易生搬硬套编程名词儿,更懒得想当然地去凭感觉去瞎说什么“设计模式”。(如果真的有这个感觉,为什么不去感觉感觉业务逻辑,而要瞎说雷人的设计模式呢?)

当我们把业务逻辑的“大白话”说清楚,各种业务逻辑的流程的可抽象性也就自然清楚了,稍加一点OOAD设计概念就能设计出接口来了。当我们都不深入理解业务,或者我们对业务的理解各不相同,我们的编程抽象结果往往是可笑的、在反应知识的能力还很浅时去套用“模式”概念对于编程设计其实是有害的。 --------------------编程问答--------------------
引用 5 楼 Net_Java_dram 的回复:
把所有的促销看成一个规则,
规则包括促销时间:开始时间和结束时间 
商品的范围:单个商品,一组商品,商品的一个大类,整网商品
享受规则的条件:会员等级,所有注册会员,生日会员,指定会员
规则的优惠:1.满额减 2.阶梯价格(团购)3.赠品 4.优惠券

基本上你这是基于数据库表“增删改查”的角度来理解促销的静态概念。这可能可以体现促销这种东西的十分之一、二的知识,但是这没有体现不同零售业态的处理流程。这也许能够得到千篇一律、看似“规范”的程序设计,但是没有一个实际的零售商店真正适合它。促销如果这样搞,有着许多方法被人家“切走”现金的可能,而且根本不知道什么时候应该进行什么方式,不考虑促销部分对计税和退货等等严重影响,就成了败家了。 --------------------编程问答--------------------
引用 10 楼 sp1234 的回复:
引用 5 楼 Net_Java_dram 的回复:把所有的促销看成一个规则,
规则包括促销时间:开始时间和结束时间 
商品的范围:单个商品,一组商品,商品的一个大类,整网商品
享受规则的条件:会员等级,所有注册会员,生日会员,指定会员
规则的优惠:1.满额减 2.阶梯价格(团购)3.赠品 4.优惠券
基本上你这是基于数据库表“增删改查”的角度来理解促销的静态概念……

我觉得不是基于数据库表的角度还是根据业务对象的角度来分析,把整个促销规则的业务拆分出来,在根据不同的场景来做组合。以上的一些业务都是大部分电商有的,只是一些大体的概念,要深入了解这些业务,得找零售业的业务专家。当然没有任何一个设计是符合所有业务的,有时候在设计上不能太复杂,去想它的可扩展性有多强,最后只能适得其反,个人建议 在项目第一次开发时,只要满足现有的业务需求就可以,然后在去看有那些业务是经常多变,哪些业务1年都不变的,在对多变的业务进行重构。
补充:.NET技术 ,  分析与设计
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,