我对 TDD 设计比较陌生,并且正在开展一个项目以获取相关经验。我的项目是一个塔防风格的游戏——我从一个基本的 Creep(怪物)开始,并根据测试的行为来设计它。然而,creep如何移动是一个相当复杂的方法。它目前看起来类似于:
public void moveToward(Point2D destination) {
if (canMove()) {
if (speedGreaterThanDistance(destination) {
leftoverDistance = calculateLevtoverDistance(destination);
currentLocation.setLocation(destination);
} else {
// do math to calculate x distance and y distance to move
Point2D newLocation = new Point2D.Double(oldX + xTrans, oldY + yTrans);
currentLocation.setLocation(newLocation);
}
}
}
这真的感觉不像是正确的设计和结构,但我不确定如何分割它。有没有人有任何建议或链接指向我如何去做这件事?我的设计有一个 Creep 对象作为我的业务逻辑的一部分,所以我知道它至少必须有点复杂,但我现在似乎还没有做到这一点。我的问题的一部分可能是我没有适当的价值对象吗?
谢谢,