java如何从不同的数据源/格式创建对象
我正在做一个需要从不同数据源/格式创建对象的项目。我想知道什么是组织源代码的最佳方式,以使其变得简单
假设我有一个类User,我希望能够从数据库和JSON中的数据创建对象。它的目的是让我的应用程序的用户可以在线和离线浏览数据。我用的是GSON和ORMLite。此外,JSON和数据库中的字段可能不同,但“main”字段是相同的。创建包含JSON和数据库中所有属性/字段的类是个好主意吗?类似于下面的课程:
@DatabaseTable(tableName = "user", daoClass = UserDaoImpl.class)
public class User {
public static final String ID_FIELD_NAME = "id";
public static final String USER_LOGIN_FIELD_NAME = "login";
public static final String USER_EMAIL_FIELD_NAME = "email";
public static final String SERIALIZED_COUNTRY_FIELD_NAME = "user_county";
// DB & JSON
@DatabaseField(generatedId = true, columnName = ID_FIELD_NAME)
int id;
// DB & JSON
@DatabaseField(columnName = USER_LOGIN_FIELD_NAME)
String login;
//DB & JSON
@DatabaseField(columnName = USER_EMAIL_FIELD_NAME)
String email;
//Only JSON
@SerializedName(SERIALIZED_COUNTRY_FIELD_NAME)
String country;
public Track() {
}
}
# 1 楼答案
我认为简单的答案是肯定的。可以使用相同的对象来表示数据库中的数据,也可以通过JSON
当您需要更改数据库中的数据表示形式,但不想更改JSON API或反之亦然时,就会出现问题。然后需要两个独立的类和它们之间的映射函数
但如果你能逃过一节课,那就是最好的办法
# 2 楼答案
考虑factory pattern,您可以使用它来抽象作为数据源函数的具体用户类的创建。
使用户成为一个界面,并为每种类型的数据源提供特定于数据源的用户实现