Android上的领域:保持数据库逻辑独立
我曾经处理从领域复制的非自动管理的模型对象。我在新项目中使用了自动管理的领域对象,但遇到了一个问题 在我可以将DB逻辑分开之前,在DAO类中,现在,领域代码遍布我的应用程序 领域对象应该在任何地方、每个线程、每个活动和片段上得到良好的管理(关闭)。但我最不喜欢的是:每个模型对象上的每个setter都需要在一个领域事务中。现在我的代码中到处都是领域Android上的领域:保持数据库逻辑独立,android,realm,Android,Realm,我曾经处理从领域复制的非自动管理的模型对象。我在新项目中使用了自动管理的领域对象,但遇到了一个问题 在我可以将DB逻辑分开之前,在DAO类中,现在,领域代码遍布我的应用程序 领域对象应该在任何地方、每个线程、每个活动和片段上得到良好的管理(关闭)。但我最不喜欢的是:每个模型对象上的每个setter都需要在一个领域事务中。现在我的代码中到处都是领域 在使用自动管理的领域对象时,是否有人找到一种方法使DB逻辑保持一定的独立性?我所做的是创建了一个RealmController类,该类处理我的所有领域
在使用自动管理的领域对象时,是否有人找到一种方法使DB逻辑保持一定的独立性?我所做的是创建了一个RealmController类,该类处理我的所有领域事务,并从API获取新数据。实现的框架是从另一篇SO文章中借来的,我现在找不到,但是你应该可以通过搜索RealmController在Google上找到它
公共类RealmController{
私有静态RealmController实例;
私人最终领域;
私有服务接口;
私有最终字符串标记=“RealmController”;
私有静态布尔browseFetchAllowed=true;
private RealmConfiguration config=new RealmConfiguration.Builder()
.name(“myRealm”)
.schemaversation(0)
.DeleteRealMifMigrationRequired()
.build();
公共RealmController(应用程序){
restInterface=ServiceGenerator.createService(ServiceInterface.class);
realm=realm.getInstance(配置);
}
public void setAuthentication(字符串令牌、字符串uid){
this.restInterface=ServiceGenerator.createService(ServiceInterface.class,令牌,uid);
}
带有(片段)的公共静态RealmController{
if(实例==null){
实例=新的RealmController(fragment.getActivity().getApplication());
}
返回实例;
}
具有(活动)的公共静态RealmController{
if(实例==null){
instance=newrealmcontroller(activity.getApplication());
}
返回实例;
}
带有(应用程序)的公共静态RealmController{
if(实例==null){
实例=新的RealmController(应用程序);
}
返回实例;
}
公共RealmController getInstance(){
返回实例;
}
公共服务接口getRestInterface(){
返回REST接口;
}
公共领域getRealm(){
回归境界;
}
public RealmResults getStuff(){
返回realm.where(MyRealObject.class).findAll();
}
公共无效设置凝灰岩(RealmList stuff){
realm.beginTransaction();
realm.copyToRealmOrUpdate(stuff);
realm.commitTransaction();
}
public void getStuffFromServer(){
restInterface.getStuff().enqueue(新回调()函数){
@凌驾
公共void onResponse(调用、响应){
if(response.issusccessful()){
realm.beginTransaction();
realm.copyToRealmOrUpdate(response.body);
realm.commitTransaction();
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
t、 printStackTrace();
}
});
}
}
我所做的是创建了一个RealmController类,该类处理我的所有领域事务,并从API获取新数据。实现的框架是从另一篇SO文章中借来的,我现在找不到,但是你应该可以通过搜索RealmController在Google上找到它
公共类RealmController{
私有静态RealmController实例;
私人最终领域;
私有服务接口;
私有最终字符串标记=“RealmController”;
私有静态布尔browseFetchAllowed=true;
private RealmConfiguration config=new RealmConfiguration.Builder()
.name(“myRealm”)
.schemaversation(0)
.DeleteRealMifMigrationRequired()
.build();
公共RealmController(应用程序){
restInterface=ServiceGenerator.createService(ServiceInterface.class);
realm=realm.getInstance(配置);
}
public void setAuthentication(字符串令牌、字符串uid){
this.restInterface=ServiceGenerator.createService(ServiceInterface.class,令牌,uid);
}
带有(片段)的公共静态RealmController{
if(实例==null){
实例=新的RealmController(fragment.getActivity().getApplication());
}
返回实例;
}
具有(活动)的公共静态RealmController{
if(实例==null){
instance=newrealmcontroller(activity.getApplication());
}
返回实例;
}
带有(应用程序)的公共静态RealmController{
if(实例==null){
实例=新的RealmController(应用程序);
}
返回实例;
}
公共RealmController getInstance(){
返回实例;
}
公共服务接口getRestInterface(){
返回REST接口;
}
公共领域getRealm(){
回归境界;
}
public RealmResults getStuff(){
返回realm.where(MyRealObject.class).findAll();
}
公共无效设置凝灰岩(RealmList stuff){
realm.beginTransaction();
realm.copyToRealmOrUpdate(stuff);
realm.commitTransaction();
}
public void getStuffFromServer(){
restInterface.getStuff().enqueue(新回调()函数){
@凌驾
公共void onResponse(调用、响应){
if(response.issusccessful()){