-
大小: 23KB文件类型: .applicati金币: 2下载: 0 次发布日期: 2024-01-17
- 语言: Java
- 标签:
资源简介
/*
* 原始需求背景:
* 网宿CDN要按月收取客户的服务费用,根据流量的大小、
* 服务的类型等,收取不同的费用,收费规则如下:
* web应用:1000元/M
* 流媒体应用:1000元/M*0.7
* 下载应用:1000元/M*0.5
* 月末打印报表时,要罗列每个用户每个频道的费用、客户总费用,
* 还要打印该客户的重要性指数,重要性指数=网页流/100+下载流量/600;
*
* 需求变更场景:
* 系统已经开发出来了,接下来,运维部门现在希望对系统做一点修改,
* 首先,他们希望能够输出xml,这样可以被其它系统读取和处理,但是,
* 这段代码根本不可能在输出xml的代码中复用report()的任何行为,唯一
* 可以做的就是重写一个xmlReport(),大量重复report()中的行为,当然,
* 现在这个修改还不费劲,拷贝一份report()直接修改就是了。
* 不久,成本中心又要求修改计费规则,于是我们必须同时修改xmlReport()
* 和report(),并确保其一致性,当后续还要修改的时候,复制-黏贴的问题就
* 浮现出来了,这造成了潜在的威胁。
* 再后来,客服部门希望修改服务类型和用户重要性指数的计算规则,
* 但还没决定怎么改,他们设想了几种方案,这些方案会影响用户的计费规则,
* 程序必须再次同时修改xmlReport()和report(),随着各种规则变得越来越复杂,
* 适当的修改点越 来越难找,不犯错误的机会越来越少。
* 现在,我们运用所学的OO原则和方法开始进行改写吧。
*/
评论
共有 条评论