有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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() {

    }
}

共 (2) 个答案

  1. # 1 楼答案

    Is it a good idea to create class which contains all properties/fields from JSON and database?

    我认为简单的答案是肯定的。可以使用相同的对象来表示数据库中的数据,也可以通过JSON

    当您需要更改数据库中的数据表示形式,但不想更改JSON API或反之亦然时,就会出现问题。然后需要两个独立的类和它们之间的映射函数

    但如果你能逃过一节课,那就是最好的办法

  2. # 2 楼答案

    考虑factory pattern,您可以使用它来抽象作为数据源函数的具体用户类的创建。

    使用户成为一个界面,并为每种类型的数据源提供特定于数据源的用户实现