0

我正在制作一个展示陈列室的应用程序,此时我创建了太多的类。

主视图是一个 GridView,包含了所有的汽车系列。(每个 GridView 项打开一个新类,所以有 9 个类,代码非常相似)

我该如何构建它?

4

2 回答 2

2

为了让@g00dy 更加充实,首先创建一个类

class BMW {
    // Reference codes for every series
    public final static int SERIES_1 = 0;
    public final static int SERIES_2 = 1;
    // etc
    public final static int NUMBER_SERIES = 9;


    // All the code needed for every car

    // eg.
    public String giveManufacturuer() {
        return "BMW"; // But see @g00dy - use string resources
    }

    public String giveSeries() {
        return XXXXX;  // Depends on which approach you choose, see below
    }

    public String giveModelName() {
        return XXXXX;  // Depends on which approach you choose, see below 
    }
}

您可以将所有变体加载到此类中(为每辆车添加参考代码并设置一些表以简化索引)。

或者您可以使用每个类的继承来扩展该类:

class Series1 extends BMW {
    @Override
    public String giveSeries {
        return "Series 1";
    }
}

class Series1M3Door extends Series1 {
    @Override
    public String giveModelName {
        return "3 Door";
    }
}

然后,当您实例化最终类时,它将使所有三个函数都正常工作。

这种方法很简洁,但仍然会给你很多课程。我怀疑对于您正在做的事情,一些经过深思熟虑的信息表(通过系列和模型代码访问)在隐藏类中可能会更好地工作。

另一种可能更好的方法可能是使用您作为核心类返回的信息来构造代码。

于 2013-03-01T21:50:09.587 回答
1

我实际上没有时间把所有这些都写下来,意思是一个统一的类,但这里给你一些提示。使用一个标志来指示汽车的型号(例如 Z4、M6),然后在类中使用它来确定代码应该在哪个树上运行。将硬编码的值替换为字符串资源(只需执行此操作,无需其他说明)。在实例化类并使用它的函数时,请考虑标志并将其放在if()条件或switch. 如果某些模型需要比其他模型更多的代码,您始终可以将其封装在负责模型的代码部分中。但是避免嵌套过多的 if,因为它会变得混乱,就像定义了 100 个类,它们做 99% 的事情与其他类一样。始终尝试尽可能多地重用您的代码。它将减少写入(复制/粘贴)重复的东西,以及应用程序的大小,它将需要的内存等。结论:尝试将类的公共部分组合成一个类(统统统统 :-))和使用标志,让程序知道在那里做什么。

于 2013-03-01T13:27:35.747 回答