design-patterns - 是否有一种模式的名称可以根据模型更改保持远程 UI 元素同步?
问题描述
我想研究一种特定软件模式的现有解决方案,我认为这种模式在当今的断开连接的软件世界中一定很普遍。我没有任何运气在网上搜索描述它的方式,我想知道是否有一种描述我不知道的模式的方式。
我正在寻找的设计描述如下:
我正在尝试设计一个(面向对象的)应用程序,其中需要尽快重绘许多远程连接的控件(UI 元素)。我还没有考虑特定的语言或目标,但为了论证,假设每个控件都绘制在网页中的 Canvas 元素上。对于此控件的任何特定实例,其外观都基于可能具有几十万个属性的相当复杂的数据对象(模型)。
由于可能存在的控件数量以及数据对象的复杂性,我将通过在线发送补丁来同步数据对象的每个远程副本(而不是每次都发送整个数据对象)。然后我想使用相同的补丁/转换数据来仅重新绘制需要重新绘制的控件部分。
对于修补机制,我想为对象使用类似于操作转换的东西(而不是纯文本)。然后,我将在绘制系统中使用相同的补丁信息来确定控件的哪些部分需要在任何更新时重新绘制。
我想这是一个非常常见的场景,我不想在这里完全重新构建轮子(尽管我确实理解绘图机制将取决于特定的绘图算法)。
我可以在线搜索这种远程对象同步和绘画机制的艺术术语吗?这是公认的模式吗?
解决方案
也许基于观察者设计模式和复合设计模式的解决方案可能能够解决您的问题。
推荐阅读
- javascript - 在 ASP.NET C# 中刷新浏览器时如何使倒数计时器不重置?
- php - filter_var($url, FILTER_FLAG_HOST_REQUIRED) 总是返回 false
- python - 如何在python dict或list中打印实际的unicode字符
- mongodb - 如何根据 MongoDB 中的 ID 从多个集合中删除文档?
- excel - VBA Excel - 更改一个单元格中的文本会更改另一个数据验证中的文本
- google-apps-script - 缺少范围 Google Analytics API
- vba - Excel VBA 文本到列
- auth0 - 带有 AuthenticationClient 的 Auth0 登录对话框
- python - 引发“不可编辑”异常
- android - 默认通知文本大小