java - 如何从不同的数据源/格式创建对象

标签 java design-patterns gson ormlite

我正在开发一个项目,需要从不同的数据源/格式创建对象。我想知道组织源代码以使其变得简单的最佳方法是什么。

假设我有 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/

相关文章:

JAVA google geocoding API 获取城市

java - 解码带有名称的列表的 JSON 字符串

java - 获取文件夹大小

java - hibernate中的一对多映射: Referring two different properties to a single column

java - 我可以用 Timer 对象使程序饱和吗?

.net - View 和 ViewModel 之间的 MVVM 依赖关系

php - 从父类返回子类

design-patterns - 分析、设计或架构模式

java - 将 JSON 字符串转换为 Java 对象 : Java

android - 使用 Retrofit 在 JSON 中上传多部分图像数据?