0

さまざまなデータソース/形式からオブジェクトを作成する必要があるプロジェクトに取り組んでいます。ソースコードを整理して簡単にするための最良の方法を知りたいです。

クラス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() {

    }
}
4

2 に答える 2

1

JSONとデータベースのすべてのプロパティ/フィールドを含むクラスを作成することをお勧めしますか?

簡単な答えはイエスだと思います。同じオブジェクトを使用して、データベース内およびJSONを介してデータを表すことができます。

問題が発生するのは、データベース内のデータ表現を変更する必要があるが、JSONAPIを変更したくない場合またはその逆の場合です。次に、2つの別々のクラスとそれらの間のマッピング関数が必要になります。

しかし、1つのクラスで逃げることができれば、それが最善の方法です。

于 2013-02-08T16:39:12.243 に答える
1

ファクトリパターンを検討してください。これを使用して、データソースの関数として具体的なユーザークラスの作成を抽象化できます。

Userをインターフェースにし、データソースのタイプごとにUserのデータソース固有の実装を作成します。

于 2013-02-07T11:50:46.673 に答える