gpt4 book ai didi

c++ - 新旧状态的区别

转载 作者:太空宇宙 更新时间:2023-11-04 13:06:19 24 4
gpt4 key购买 nike

我正在开发一个应该向客户端发送状态更改的 SOAP 服务器。服务器与其他系统通信以更新其内部状态。

我正在寻找一种解决方案(任何模式),让我在更新后跟踪状态变化。我看了memento pattern但这不是我要找的,因为我不需要以前的状态,而是改变。我不能简单地将更改传播给客户端,因为它是拉式架构(客户端轮询更改)。

用例

假设服务器状态是一个包含 3 个元素的对象的列表,更新修改它并添加一个新元素。客户端必须只接收新添加的元素,包含 4 个元素的列表。

有什么解决办法吗?

最佳答案

您可以定义一组可序列化的命令(有关详细信息,请参阅命令设计模式),每当必须执行更改时就会生成这些命令。
然后您可以在本地执行这些命令以将更改应用于您的模型并在队列中序列化这些命令。每当客户端拉取它们时,它只需将相同的命令重新应用到其本地模型,并获得与服务器端相同的结果。
在要应用的更改方面,您的服务器以某种方式表现得与客户端完全一样,区别在于它会立即它们。

考虑到您的用例,可以将命令定义为列表中的插入,并与所有必需的参数一起创建。您可以轻松地将其扩展到列表对象的删除和更新。

关于c++ - 新旧状态的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42158633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com