[英]Design pattern for checking two modes (online/offline) in multiple places
我正在开发 Xamarin 应用程序。 目前该应用程序在离线模式下工作。 在离线模式下,用户从服务器下载 SQLite 数据库。 然后,该应用程序从该 SQLite 数据库中查询数据以显示和执行 CRUD 操作。 当用户单击同步按钮时,更改将同步到服务器。
现在,我想实现一个在线模式。 在在线模式下,每当用户 go 进入屏幕时,它都会向服务器发出 WebApi 请求。 CRUD 操作也是如此。
UI 在两种模式(在线/离线)下是相同的。 用户可以选择他们想要工作的模式。 我想防止在所有地方使用模式检查条件语句。
例如,当用户进入屏幕时,条件语句将如下所示
if (mode == "Online") {
getDataOnline();
} else if (mode == "Offline") {
getDataOffline();
}
大多数地方都需要这个检查,而且它不是很优雅。
解决这个问题的设计模式或最佳方法是什么?
微软有一些解决方案可以让 Xamarin 中的离线数据同步相当简单。 我建议检查这些而不是自己构建它们:
创建一个为您处理所有数据请求的 class。 您的 VM 将使用此服务请求数据,而不必担心用户是否在线的详细信息
public class WidgetService : IWidgetService
{
public List<Widget> GetAll()
{
if (online)
return RemoteWidgetService.GetAll();
else
return LocalWidgetService.GetAll();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.