我想知道是否有人知道任何设计模式,文章或其他信息,以解决在多个设备之间同步设置的问题。
说一个网站,一个iPhone应用程序和一个iPad应用程序;随着未来设备的出现。
任何信息都将不胜感激。如果您需要更多信息,请正确回答,请说明,我可以详细说明问题。
答案 0 :(得分:2)
答案 1 :(得分:1)
请原谅我,如果以下内容看起来过于笼统,但我试图保持高水平,以使其符合您的问题。我不知道你所寻找的东西本身是否会被称为“设计模式”。听起来你正在寻找同步范例/系统。请注意,我在此回复中的假设是您需要为您的应用程序提供在线和离线功能(因为您明确提到同步。)如果我弄错了,请告诉我。
特别是,您可能正在寻找的东西通常使用两件事来实现:1)“分布式”数据库(一个在客户端应用程序(如移动应用程序)以及任何服务器上脱机工作的数据库) 2)同步和冲突解决机制。
源代码管理工具Git就是一个非常好的例子。 Git具有上述两个特征。首先,它使用可分发的数据库(例如git项目的文件系统)(例如,项目可以从一个开发人员的工作站克隆到另一个工作站并独立工作。)其次,它具有同步和冲突解决机制的机制。也就是说,如果我尝试从同事的工作站同步(例如拉取更改),她的代码和我的代码之间的差异可以合并(自动或手动)。
另一个例子,也许与您的应用程序更相关,是Evernote。如果我没弄错的话,Evernote使用相同的范例(平面文件数据库)来同步文档,并拥有桌面客户端,网站和移动客户端。
这并不是说您需要使用平面文件数据库。您可以轻松使用关系数据库或其他数据库。此外,根据您尝试存储和同步的数据类型,您可以通过非常简单的冲突解决方案逃脱。 (例如,如果您只是存储状态更新,投票计数等,也许您只需选择数据库中的最新条目。)
简而言之,我提到的工具似乎遵循这种工作流程: