Tag: repository pattern

如何正确激活活动外的服务?

我正在尝试构建一个依赖Web服务工作的应用程序。 为了实现它,我决定遵循Model-View-ViewModel架构和Repository模式。 我尝试使这个架构受到Android开发人员官方网站的应用程序架构指南中所示指南的启发。 我使用OkHttp库来使用WebService,并使用Room作为手机的数据库。 我做了一些测试,看看应用程序是否通过Web服务从主要活动中成功获得了数据,并且它有效; 应用程序成功收到数据。 ServiceConnection connection = new ServiceConnection() { @Override public void onServiceDisconnected(ComponentName name) { connected = false; Log.i(“MainActivity”, “MyWebService DISconnected successfully.”); } @Override public void onServiceConnected(ComponentName name, IBinder service) { myweb_service = ((MyWebService.LocalBinder)service).getService(); connected = true; Log.i(“MainActivity”, “MyWebService connected successfully.”); } }; void doBindMyWebService() { if (bindService(new Intent(this, MyWebService.class), connection, Context.BIND_AUTO_CREATE)) […]

ORM /如何处理Domain对象和Persistent对象之间的对应关系?

在应用程序中,至少有两种方法可以处理域对象持久性和ORM。 使用某种ORM(xml或注释)直接将域对象映射到持久性 在域和持久模型之间存在大量阻抗不匹配的情况下分离关注点 (表格列)。 这意味着,域对象是持久性不可知的,并且对某些对应的持久对象进行了一些转换,后者映射到ORM。 正如纯DDD开发人员所知,域不应该由您的数据库需求驱动 ,因此在我的项目中,我使用这种关注点分离。 有人会想到YAGNI,有人会说“很棒”(就像这里一样)。 根据我对可重用性的需求,我的项目需要一些不同的数据库,因此我选择了我的域模型和持久模型之间的关注点分离。 但是我遇到了Spring-Data的一个问题(某种性能损失)。 一个细节可能,但只是假设一个ORM不具有merge的function,或任何相关的,以将分离的实体重新附加到当前事务。 为了理解,让我们假设这个概念代码(用Java): @Transaction public void participateToMeeting(String userId, String meetingId){ User user = userRepository.ofId(userId); //returns a User domain type Meeting meeting = meetingRepository.ofId(meetingId); //returns a Meeting domain type if(user != null && meeting != null) { user.participate(meeting); // as attached entity, this would automatically persist the […]