0

例如,我有一个班级叫动物。我认为我不需要将其子类化为鸟类、哺乳动物等,因为我只想拥有一个包含所有动物的方法和 ui 的类,例如展示动物出生、展示动物成长、展示动物被屠杀、展示动物被吃掉(旁白:是的,这只是一个例子,但你明白了)。但是,我只想加载所有鸟类并对其进行操作,然后返回主菜单,然后导航到哺乳动物并展示它们,等等。在我的真实应用程序中,每个“动物”只有 3 倍的 int 信息。没有视频,但会有连续的音频和动画。

由于我每次只使用 1/6 的动物数据,即 10-15 只动物,整个应用程序可能使用 60-100 只动物,我最好做什么?

4

2 回答 2

0

如果您喜欢使用动物类的一些基本字段,即名称、颜色等,您应该创建一个抽象类动物而不是接口。

于 2012-07-27T02:38:00.080 回答
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您想要绘制的 Activity 传递给一个新的 Activity,您可以像这里描述的那样将它传递到一个包中,或者在您的新 Activity 中创建一个函数,registerAnimal然后从您的第一个 Activity 中调用它。

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();
  }

}

使用此方案,您只需为所有动物进行一项活动,从而节省大量重复代码。

于 2012-07-26T17:05:54.967 回答