打字猴:1.700456394e+09
1700456394 }
1700456395
1700456396 //模拟书店买书
1700456397
1700456398 public static void main(String[]args){
1700456399
1700456400 NumberFormat formatter=NumberFormat.getCurrencyInstance();
1700456401
1700456402 formatter.setMaximumFractionDigits(2);
1700456403
1700456404 System.out.println(”–––—书店卖出去的书籍记录如下:–––—”);
1700456405
1700456406 for(IBook book:bookList){
1700456407
1700456408 System.out.println(“书籍名称:”+book.getName()+”\t书籍作者:
1700456409
1700456410 “+book.getAuthor()+”\t书籍价格:”+formatter.format
1700456411
1700456412 (book.getPrice()/100.0)+“元”);
1700456413
1700456414 }
1700456415
1700456416 }
1700456417
1700456418 }
1700456419
1700456420 我们只修改了粗体部分,其他的部分没有任何改动,运行结果如下所示。
1700456421
1700456422 ––––书店买出去的书籍记录如下:–––––––
1700456423
1700456424 书籍名称:天龙八部 书籍作者:金庸 书籍价格:¥25.60元
1700456425
1700456426 书籍名称:巴黎圣母院 书籍作者:雨果 书籍价格:¥50.40元
1700456427
1700456428 书籍名称:悲惨世界 书籍作者:雨果 书籍价格:¥28.00元
1700456429
1700456430 书籍名称:金瓶梅 书籍作者:兰陵笑笑生 书籍价格:¥38.70元
1700456431
1700456432 OK,打折销售开发完成了。看到这里,各位可能有想法了:增加了一个OffNoveBook类后,你的业务逻辑还是修改了,你修改了static静态模块区域。这部分确实修改了,该部分属于高层次的模块,是由持久层产生的,在业务规则改变的情况下高层模块必须有部分改变以适应新业务,改变要尽量地少,防止变化风险的扩散。
1700456433
1700456434 注意 开闭原则对扩展开放,对修改关闭,并不意味着不做任何修改,低层模块的变更,必然要有高层模块进行耦合,否则就是一个孤立无意义的代码片段。
1700456435
1700456436 我们可以把变化归纳为以下三种类型:
1700456437
1700456438 ❑逻辑变化
1700456439
1700456440 只变化一个逻辑,而不涉及其他模块,比如原有的一个算法是a*b+c,现在需要修改为a*b*c,可以通过修改原有类中的方法的方式来完成,前提条件是所有依赖或关联类都按照相同的逻辑处理。
1700456441
1700456442 ❑子模块变化
1700456443
[ 上一页 ]  [ :1.700456394e+09 ]  [ 下一页 ]