私はTDD設計に比較的慣れておらず、経験を積むためにプロジェクトに取り組んでいます。私のプロジェクトはタワー ディフェンス スタイルのゲームです。基本的なクリープ (モンスター) から始めて、テスト済みの動作に基づいて設計しています。しかし、クリープがどのように動くかはかなり複雑な方法です。現在、次のように見えます。
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 オブジェクトが含まれているため、少なくとも多少複雑になることはわかっていますが、現時点では適切ではないようです。私の問題の一部は、適切な値オブジェクトが配置されていないことでしょうか?
ありがとう、