私は小さなゲームをプログラミングしています。私はBoard
とPiece
という2つのクラスを持っています。 Board
はBoard
のボーダーで移動できるPiece
を持っています(これまでのところ)。オブジェクト自身(これ)をフィールドメソッドに渡すのは悪い方法ですか?
public class Board {
private Piece piece_;
private int width, height;
...
movePieceDown() {
piece_.moveTo(this, 1, 2);
}
}
public class Piece {
public boolean moveTo(Board board, int x, int y) {
// move piece to new location (x,y)
// return true if successful
}
}
ボード上の障害物がない場合、私は理事会にpiece_.moveTo(this, 1, 2);
パス参照でそうワンピースは、新しい場所に移動することができれば、それは悪いアプローチですか?ボードに言及することなく、ピースは新しい場所に障害があるかどうかを知ることはできません。
私の意見では、すべてのオブジェクトは自分自身についてのみ心配する必要があります。ピースは新しい場所に移動し、理事会は法的な動きであれば心配する必要がありますが、このサンプルコードはより意味があり、
TL; DR:フィールドのメソッドにオブジェクト自体を渡していくつかのOOPガイドラインを破っていますか、それとも通常のOOPイディオムですか?これを私に明確にしてくれてありがとう。
なぜボードをmovePieceDownに渡していますか? –
ええ、良いコール、それについてはごめんなさい、私は投稿のためのコードをサンプリングしていたときにタイプミスでした。今編集します。 – h00s