ohjongin / android-realm-test

Test application for realm.

Home Page:http://realm.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Instantiating a Realm & Write scheme

ohjongin opened this issue · comments

Realm을 쓰기 위해서 매번 instantiating을 왜 해야 하는지는 개발자 입장에서는 이해가 어렵네요..

Realm realm = new Realm(this.getFilesDir());

그리고, beginWrite(), commit() 으로 이어지는 단계도 불편합니다.

try {
    realm.beginWrite();        // Open a default realm
    Realm realm = new Realm(this);

    // Add a person in a write transaction
    realm.beginWrite();
    Person person = realm.create(Person.class);
    person.setName("Happy Person");
    person.setAge(14);
    realm.commit();

    //... do writes here ...

    realm.commit();
} catch (Exception e) {
    e.printStackTrace();
    // ... recover from error ...
}

Parameter로 _this_를 넘기면 getFilesDir()은 알아서 하면 될텐데 왜 굳이 개발자에게 이런 복잡하고 이해할 수 없는 노가다를 시키는지도 이해가 잘 안갑니다.

Realm realm = new Realm(this.getFilesDir());

오히려 Object를 생성하는 방법이 더 이상합니다. 여기선 new 가 안쓰이네요?

User user = realm.create(User.class);

차라리 Object를 생성할 때 new를 사용하는 것이 좋지 않을까요?

User user = new RealmObject(User.class);

차라리 이렇게 static method로 instance를 바로 얻어서 진행하는데 더 깔끔할 것 같기도 합니다.

Realm.initialize(this);
try {
    User user = Realm.create(User.class);

    //... do writes here ...
    user.setName("No name");

    user.commit();
} catch (Exception e) {
    e.printStackTrace();
    // ... recover from error ...
}