addScoreメソッドをPaddleではなく、Ballクラスで呼び出しても良いですか?

どちらでも良いですが、設計上の理由も説明していきます。
2020年12月13日
ユーザー

ありがとうございます!

では質問なのですが、お手本のコードでは、addScoreメソッドがPddleクラスで呼び出されていますね。Ballクラスのbaunceメソッドとrepositionメソッドと一緒に。

<お手本のコード>
if (
ballBottom > paddleTop &&
ballTop < paddleBottom &&
ballCenter > paddleLeft &&
ballCenter < paddleRight
) {
ball.bounce();
ball.reposition(paddleTop);
this.game.addScore();
}

おそらく、Paddleクラスにまとめた方が見やすくなるために、お手本のようになっているのだと思います。

ところがここで、BallクラスのbounceメソッドにてaddScoreメソッドを呼び出しても何か機能的な問題はないでしょうか。
もちろん、GameクラスのインスタンスをBallクラスに渡した上で、ですん。

<こんな感じで書きました。>
bounce(){
this.vy *= -1;
this.game.addScore();
}

この書き方でも一応うまく作動しています。いかがでしょうか。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?