0

プログラムのロジックを設計しようとすると、この問題が繰り返し発生します。IDriveable インターフェースがあるとしましょう。

interface IDriveable
{
  public void Drive();
}

次に、この (c#) 構文を実装する car クラス:

class Car : IDriveable
{
  public void Drive(){
  //Do the movement here.
  }

}

ここで私の問題が発生します。私がゲームをデザインしている場合、車は自動運転ではなく、プレイヤーが車を運転する必要があります。

class player
{
    public void Drive(IDriveable vehicle){

        vehicle.Drive();
     }
}

正しくないように見えるロジックを「ピンポン」しているように感じます。

4

1 に答える 1

0

コードを構造化するより良い方法は、次のようなものです。

class Player // Start class names with a capital letter
{
    Car thisPlayersCar; // Initialize it  the constructor or somewhere appropriate

    public void someFunction() {
        thisPlayersCar.Drive();
    }
}

基本的に、インターフェイスの目的は、呼び出す場所thisPlayersCar.Drive();(またはDrive()任意の) で、オブジェクトがすぐに使用できる関数IDriveableを持っていることを保証することです。Drive()

于 2013-10-06T20:10:06.187 に答える