《敏捷软件开发——原则、模式于实践》(英文名:Agile Software Development-Principles, Patterns, and Practices)可谓经典之著。最近阅读其中文版的时候发现点小瑕疵,在第六章-一次编程实践中的那个保龄球演示小程序的final版本里用到的class Game的adjustCurrentFrame()方法有点小问题,导致测试全部失败。
private void adjustCurrentFrame(int pins)
{
if (lastBallInFrame(pins))
advanceFrame();
else
firstThrowInFrame = false;
}
|
应改为
private void adjustCurrentFrame(int pins)
{
if (lastBallInFrame(pins)) {
advanceFrame();
firstThrowInFrame = true;
}
else
firstThrowInFrame = false;
}
|
意即,如果该球是本轮最后一次投掷,仍需调整firstThrowInFrame标志位。
从P70页就开始引入这个错误了,不知道是原版就有这个问题还是翻译的时候引入的这个问题,中文版的勘误里没找到,而英文版的电子书也没能从网上找到能下的(如果谁有还望能发我一份)。
这样的一部经典著作里有这样的失误实在是不应该,毕竟不是排版问题。测试代码在这里:
bowling_test.tar.bz2 ,是C++版本的,逻辑与Java版本的是一致的(不会说Java版本的就OK吧),Linux下make生成testgame测试程序。
阅读(803) | 评论(0) | 转发(0) |