[重构到模式-Chain of Responsibility Pattern]把Fizz Buzz招式重构到责任链模式
2013-07-03 21:27
519 查看
Fizz Buzz是国外一群小学生集体练习除法的游戏。老师在下课前5分钟,要小朋友们按顺序轮流递增地从1数到100,每人说一个数,当遇到3的倍数(multiples of three)时要说Fizz,遇到5的倍数(multiples of five)时要说Buzz,遇到即是3的倍数同时也是5的倍数时(multiples of both three and five)要说FizzBuzz。例如:1、2、Fizz、4、Buzz、Fizz、7、8、Fizz、Buzz、11、Fizz、13、14、FizzBuzz、16、17、Fizz、19、Buzz、...
等等,直到 100。如果当轮到你说时,你说错了或者犹豫半天,你就输了,不能再继续游戏。
试用您熟悉的编程语言实现上述需求。
待上述需求完成后,增加下述新需求:
1)当遇到7的倍数(multiples of seven)时说Whizz。试着重构代码,使得当实现该新需求时,仅仅添加新的类来实现新的逻辑,而不必修改实现已有的逻辑的类的代码。
2)当遇到包含数字3的整数(如23、53等等)时也说Fizz,而当遇到35这样既包含数字3又是5同时又是7的倍数时,说FizzBuzzWhizz。试着重构代码,使得当实现该新需求时,仅仅修改涉及说出Fizz、FizzBuzz和FizzBuzzWhizz的类的代码,而不必修改其他的类的代码。
提示:可以考虑使用Chain of Responsibility设计模式。
参考测试1:遇1说1。
参考测试2:遇3说Fizz。
参考测试3:遇5说Buzz。
参考测试4:遇15说FizzBuzz
参考测试5:遇7说Whizz
参考测试6:遇23说Fizz
参考测试7:遇35说FizzBuzzWhizz
来源: "Coding Dojo Handbook" by Emily Bache https://leanpub.com/codingdojohandbook
源码: https://github.com/wubin28/KataFizzBuzz
等等,直到 100。如果当轮到你说时,你说错了或者犹豫半天,你就输了,不能再继续游戏。
试用您熟悉的编程语言实现上述需求。
待上述需求完成后,增加下述新需求:
1)当遇到7的倍数(multiples of seven)时说Whizz。试着重构代码,使得当实现该新需求时,仅仅添加新的类来实现新的逻辑,而不必修改实现已有的逻辑的类的代码。
2)当遇到包含数字3的整数(如23、53等等)时也说Fizz,而当遇到35这样既包含数字3又是5同时又是7的倍数时,说FizzBuzzWhizz。试着重构代码,使得当实现该新需求时,仅仅修改涉及说出Fizz、FizzBuzz和FizzBuzzWhizz的类的代码,而不必修改其他的类的代码。
提示:可以考虑使用Chain of Responsibility设计模式。
参考测试1:遇1说1。
参考测试2:遇3说Fizz。
参考测试3:遇5说Buzz。
参考测试4:遇15说FizzBuzz
参考测试5:遇7说Whizz
参考测试6:遇23说Fizz
参考测试7:遇35说FizzBuzzWhizz
来源: "Coding Dojo Handbook" by Emily Bache https://leanpub.com/codingdojohandbook
源码: https://github.com/wubin28/KataFizzBuzz
相关文章推荐
- [重构到模式-Chain of Responsibility Pattern]把Fizz Buzz招式重构到责任链模式
- [重构到模式-Chain of Responsibility Pattern]把哈利波特购书优惠招式重构到责任链模式
- 行为型模式:责任链模式(Chain of Responsibility Pattern)
- 责任链模式(Chain Of Responsibility Pattern,对象行为模式)
- 如何让孩子爱上设计模式 ——22.责任链模式(Chain of Responsibility Pattern)
- 设计模式(十四)-责任链模式(Chain of Responsibility Pattern)——推卸责任
- java与模式 责任链模式 Chain of Responsibility pattern
- 1.1设计模式在Unity中应用—Behavioral Pattern— Chain of Responsibility Pattern 责任链模式
- 我所理解的设计模式(C++实现)——责任链模式(Chain Of Responsibility Pattern)
- 我所理解的设计模式(C++实现)——责任链模式(Chain Of Responsibility Pattern)
- 23种设计模式--责任链模式-Chain of Responsibility Pattern
- 设计模式【责任链模式Chain of Responsibility Pattern】
- 极速理解设计模式系列:12.责任链模式(Chain of Responsibility Pattern)
- 【设计模式】责任链模式(Chain of Responsibility Pattern)
- 设计模式 - Chain of Responsibility Pattern(责任链模式)
- 极速理解设计模式系列:12.责任链模式(Chain of Responsibility Pattern)
- 乐在其中设计模式(C#) - 责任链模式(Chain of Responsibility Pattern)
- 24种设计模式--责任链模式【Chain ofResponsibility Pattern】
- 设计模式 - Chain of Responsibility Pattern(责任链模式)
- java设计模式——责任链模式(Chain of Responsibility Pattern)