Skip to content

pku-software/rjsj_refactor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

代码重构

基础要求

先介绍一下我们的系统:

  • 每种物品都具备一个销售期限SellIn,表示我们要在多少天之前把物品卖出去
  • 每种物品都具备品质值Quality,表示物品的品质
  • 每天结束时,系统会降低每种物品的这两个数值

很简单吧?这还有些更有意思的:

  • 一旦销售期限过期,品质Quality会以双倍速度加速下降
  • 物品的品质Quality永远不会为负值(即减到0为止)
  • "Aged Brie"(陈年布利奶酪)的品质Quality会随着时间推移而提高
  • 物品的品质Quality永远不会超过50
  • 传奇物品"Sulfuras"(萨弗拉斯—炎魔拉格纳罗斯之手)永不过期,也不会降低品质Quality(恒为80)
  • "Backstage passes"(后台通行证)与"Aged Brie"(陈年布利奶酪)类似,其品质Quality会随着时间推移而提高;当还剩10天或更少的时候,品质Quality每天提高2;当还剩5天或更少的时候,品质Quality每天提高3;但一旦过期,品质就会降为0

请随意对GildedRose.cpp中 updateQuality() 函数进行修改和添加新代码,只要系统还能正常工作,但不要修改Item类或其属性。我们没有提供单元测试,只是有一些简单的文字输出,你应当保证重构前后的输出不变。

你可以先跑一遍原代码,将输出结果存储在文件中;随后进行重构,再将重构后输出结果存储在文件中。

在Windows中,你可以使用FC 1.txt 2.txt来比较两个文件的差异;

在Linux和MacOS中,你可以使用diff 1.txt 2.txt来比较两个文件的差异。

新功能

在重构完代码后,你可以试试是否方便加入下面的功能,以检验你的重构是否好用。

我们最近签约了一个召唤物品供应商。这需要对我们的系统进行升级:

  • "Conjured"(召唤物品)的品质Quality下降速度比正常物品快一倍

About

软件设计实践课程重构作业代码包

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors