我正在制作一个展示展示厅的应用程序,在这一点上,我已经创建了太多的类。
主视图是一个包含所有系列汽车的GridView (每个GridView条目打开一个新类,因此有9个类具有非常相似的代码)。
我该如何组织它呢?
发布于 2013-03-02 05:50:10
要在@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-01 21:27:36
我实际上没有时间来写下所有这些,意思是一个统一的类,但这里给你一个提示。使用一个标志,它将指示汽车的型号(例如Z4,M6 ),然后在类中使用它来确定代码应该在哪个树上运行。用字符串资源替换硬编码的值(只需这样做,不需要其他注释)。在实例化类并使用其函数时,请考虑该标志,并将其放入if()条件或switch中。如果某些模型比其他模型需要更多的代码,您可以始终将其封装在负责模型的代码部分中。但避免嵌套太多的it,因为这会变得混乱,就像定义了100个类,这些类与其他类做了99%相同的事情。总是尽可能地重复使用你的代码。它将减少编写(复制/粘贴)重复的内容,以及应用程序的大小,它将需要的内存等。结论:尝试将类的公共部分组合到一个类中(以控制所有类:-),并使用标志,让程序知道在那里要做什么。
https://stackoverflow.com/questions/15158568
复制相似问题