0

たとえば、私は動物というクラスを持っています。これを鳥や哺乳類などにサブクラス化する必要はないと思います。たとえば、動物の誕生、動物の成長の表示、動物の屠殺の表示、表示など、すべての動物のメソッドとuiを含むクラスを1つだけにしたいからです。食べられている動物(脇:はい、これは単なる例ですが、あなたは写真を手に入れます)。ただし、すべての鳥をロードしてアクションを実行してからメインメニューに戻り、哺乳類に移動して表示するだけです。私の実際のアプリでは、各「動物」には3倍の情報しかありません。ビデオはありませんが、継続的なオーディオとアニメーションがあります。

毎回動物データの1/6、つまり10〜15匹しか使用しないので、アプリ全体で60〜100匹の動物を使用するのが最善ですか?

4

2 に答える 2

0

コメントが答えになりました

Animalすべての関数を含むというインターフェイスを作成します。

public interface Animal {
   public void drawEating();
   public void drawDeath();
}

次に、このインターフェイスを実装するクラスを作成します。

public class Bird implements Animal {
   public void drawEating() {
       // TODO: fill in
   }
   public void drawDeath() {
      // TODO: fill in
   }
}

Animal描画したいものを新しいアクティビティに渡すには、ここで説明するようにバンドルで渡すか、新しいアクティビティで関数を作成してregisterAnimal、最初のアクティビティから呼び出します。

public class AnimalActivity extends Activity {
   Animal animal = null;


 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
 }

 public void registerAnimal(Animal a) {
      animal = a;
 }

 public void someDrawFunction() {
      if (animal != null)
          animal.drawEating();
  }

}

このスキームを使用すると、すべての動物に対して1つのアクティビティしかないため、反復的なコードを大幅に節約できます。

于 2012-07-26T17:05:54.967 に答える
0

動物クラスのいくつかの基本的なフィールド(名前、色など)を使用する場合は、インターフェイスの代わりに抽象クラスの動物を作成する必要があります。

于 2012-07-27T02:38:00.080 に答える