Instantiating a Realm & Write scheme
ohjongin opened this issue · comments
Jongin Oh commented
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 ...
}