电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

java装饰模式

java装饰模式_第1页
1/48
java装饰模式_第2页
2/48
java装饰模式_第3页
3/48
Jav a 装饰模式(Decorator) 1 场景问题 1.1 复杂的奖金计算 考虑这样一个实际应用:就是如何实现灵活的奖金计算。 奖金计算是相对复杂的功能,尤其是对于业务部门的奖金计算方式,是非常复杂的,除了业务功能复杂外,另外一个麻烦之处是计算方式还经常需要变动,因为业务部门经常通过调整奖金的计算方式来激励士气。 先从业务上看看现有的奖金计算方式的复杂性:  首先是奖金分类:对于个人,大致有个人当月业务奖金、个人累计奖金、个人业务增长奖金、及时回款奖金、限时成交加码奖金等等;  对于业务主管或者是业务经理,除了个人奖金外,还有:团队累计奖金、团队业务增长奖金、团队盈利奖金等等。  其次是计算奖金的金额,又有这么几个基数:销售额、销售毛利、实际回款、业务成本、奖金基数等等;  另外一个就是计算的公式,针对不同的人、不同的奖金类别、不同的计算奖金的金额,计算的公式是不同的,就算是同一个公式,里面计算的比例参数也有可能是不同的。 1.2 简化后的奖金计算体系 看了上面奖金计算的问题,所幸我们只是来学习设计模式,并不是真的要去实现整个奖金计算体系的业务,因此也没有必要把所有的计算业务都罗列在这里,为了后面演示的需要,简化一下,演示用的奖金计算体系如下:  每个人当月业务奖金 = 当月销售额 X 3%  每个人累计奖金 = 总的回款额 X 0.1%  团队奖金 = 团队总销售额 X 1% 1.3 不用模式的解决方案 一个人的奖金分成很多个部分,要实现奖金计算,主要就是要按照各个奖金计算的规则,把这个人可以获取的每部分奖金计算出来,然后计算一个总和,这就是这个人可以得到的奖金。 (1)为了演示,先准备点测试数据,在内存中模拟数据库,示例代码如下: 01 /** 02 * 在内存中模拟数据库,准备点测试数据,好计算奖金 03 */ 04 public class TempDB { 05 private TempDB(){ 06 } 07 /** 08 * 记录每个人的月度销售额,只用了人员,月份没有用 09 */ 10 public static Map mapMonthSaleMoney = 11 new HashMap(); 12 static{ 13 //填充测试数据 14 mapMonthSaleMoney.put("张三",10000.0); 15 mapMonthSaleMoney.put("李四",20000.0); 16 mapMonthSaleMoney.put("王五",30000.0); 17 } 18 } (2)按照奖金计算的规则,实现奖金计算,示例代码如下: 01 /** 02 * 计...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

java装饰模式

小辰9+ 关注
实名认证
内容提供者

出售各种资料和文档

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部