0
我在Android應用程序中有一個存儲在Realm數據庫中的配置類。我只是編輯它以遵循單例設計模式,因此只有一次配置實例。將RealmObject作爲單例擴展的類
問題是,該類現在有一個私有構造函數來防止實例化,而不調用我的'getInstance'方法。但是,RealmObject似乎需要一個公共構造函數。
難道不可能有一個類使用單例設計模式來擴展RealmObject嗎?
這僅僅是我將不得不考慮的領域的限制嗎?
這裏是代碼上下文中的片段:
public static AppConfiguration getInstance(){
if(configuration == null){
synchronized (AppConfiguration.class) {
if (configuration == null) {
configuration = new AppConfiguration();
}
}
}
return configuration;
}
//constructor is private to prevent instantiation without using getInstance, enforces singleton
private AppConfiguration() { //The constructor defined as private which is causing the problem
this.isRegistered = false;
this.isLoggedIn = false;
}
我的想法是,我將有一個應用程序啓動時創建的對象的單個實例。這個單獨的實例將被保留在Realm中,但是如果我需要在其他任何地方訪問實例,而無需從Realm數據庫中讀取它,也可以使用該實例。 我希望將AppConfiguration存儲在Realm數據庫中以在會話之間保留。只要使用Realm存儲版本,並在需要時從Realm數據庫創建/讀取/更新/刪除,會更有意義嗎?如果我需要訪問其他地方的實例,而不必從Realm數據庫中讀取實例,那麼' – Calco
'也是可用的.'只有在訪問域時才從域讀取,但實際上這是主要的好處 - 您總是到處看到同一個物體。在我看來,如果這種同步是你想要的方式,那麼你應該堅持它作爲JSON或類似的共享偏好,如果你沒有真正使用Realm,就沒有多少意義了。領域與它的任何東西。 – EpicPandaForce
Realm旨在允許自動更新以寫入發生在後臺線程上的數據庫。如果你不聽這個對象的變化,並且你不需要爲了實現這個而保持它的管理,那麼最好把它變成一個POJO,對吧? :p – EpicPandaForce