我正在开发一个项目,需要从不同的数据源/格式创建对象。我想知道组织源代码以使其变得简单的最佳方法是什么。
假设我有 User 类,并且我希望能够根据数据库和 JSON 中的数据创建对象。其目的是让我的应用程序的用户在线和离线浏览数据。我正在使用 GSON 和 ORMLite。此外,JSON 和数据库中的字段可能不同,但“主要”字段是相同的。创建包含 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() {
}
}
最佳答案
Is it a good idea to create class which contains all properties/fields from JSON and database?
我认为简短的答案是肯定的。您当然可以使用相同的对象通过 JSON 来表示数据库中的数据。
当您需要更改数据库中的数据表示形式但又不想更改 JSON API 时,就会遇到问题,反之亦然。然后您将需要 2 个独立的类以及它们之间的映射函数。
但是,如果您可以完成一门类(class),那么这是最好的方法。
关于java - 如何从不同的数据源/格式创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14749909/