我有一个 Java Web 服务,在我的网站上我需要显示一些报告。带有标题和数据的表格。这些报告也将显示在 Android 应用程序中。 问题是,对于每份报告,都涉及不同的内容,例如有关汽车的报告和其他有关狗的报告,我需要创建一个模型类才能以正确的方式执行此操作?
例如(这是一个简单的示例),如果我需要显示有关汽车的统计信息,我可能有一个像这样的 java 对象:
public class CarStats {
private String carName;
private String carModel;
private int unitsSold;
}
因此,在我的网站和 Android 应用程序中,我需要实现一个具有特定标题的表格。在我看来,这似乎是正确的方法,因为我认为这种方法遵循 OO。
另一方面,如果我想使其通用,最好使用这样的对象:
public class GenericData {
private List<String> headers;
private List<List<String>> data;
}
通过这种方法,我只需要在我的网站和 Android 应用程序中创建一个唯一的表来处理这个对象,无论我显示的数据是什么(更容易)。
但是第二种方法对我来说并不合适。我想知道什么方法更好。
这两种方法各有什么优缺点?
谢谢。
最佳答案
我认为“通用”的两个含义混淆了。一种是Java泛型,例如使用参数化类型<T>
。另一个是普通英语意义上的通用。您可能需要第二个,而不是第一个。从这个意义上说,通用意味着您创建某种适合不同数据的结构,而不是 <T>
东西。
例如,您可以创建一个通用的 Stat 或 Data 类(您选择了适当的名称),而不是 CarStat。
public class Report {
private String header;
private String data;
...
private String footnote;
...
}
Report carReport = Report ("Car", "Data about the car ...", ...);
// send carReport to be presented.
...
Report dogReport = Report ("Dog", "Data about the dog...", ...);
现在,在表示层中,您只关心表的结构。然后,您可以呈现网络服务提供的任何内容,而不必担心它是汽车、狗还是其他东西。
关于java - 使用集合而不是类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41834049/