Java 客户端服务器阵列更改检测最佳做法或设计模式

Java 客户端服务器阵列更改检测最佳做法或设计模式,java,javascript,c#,design-patterns,client-server,Java,Javascript,C#,Design Patterns,Client Server,当您希望在客户端发送的阵列中检测服务器端的更改时,您使用哪种技术 例如,非常简单的场景,我们有一组人员,客户端从服务器获取,并通过三种方式进行更改 添加新的Person 更新现有的人员(更改姓名) 删除人员 并将数组发送到服务器,服务器负责将其存储在数据库中,但首先它必须检测传入的更改并保存。 目前,我确实使用这种方法检测传入的更改: 没有Id字段的项目被视为添加了 客户端不存在但仅在服务器端的项目被视为已删除(我通过比较Id字段检测到) 两侧存在的项目(再次通过比较Id字段检测)被视为更

当您希望在客户端发送的阵列中检测服务器端的更改时,您使用哪种技术

例如,非常简单的场景,我们有一组
人员
,客户端从服务器获取,并通过三种方式进行更改

  • 添加新的
    Person
  • 更新现有的
    人员
    (更改姓名)
  • 删除
    人员
并将数组发送到服务器,服务器负责将其存储在数据库中,但首先它必须检测传入的更改并保存。 目前,我确实使用这种方法检测传入的更改:

  • 没有
    Id
    字段的项目被视为添加了
  • 客户端不存在但仅在服务器端的项目被视为已删除(我通过比较
    Id
    字段检测到)
  • 两侧存在的项目(再次通过比较
    Id
    字段检测)被视为更新
只要元素数量较少,前两个就可以了(删除的目标检测在包含10k元素或更多元素的阵列中效率较低)

另一种我正在思考但尚未尝试的方法是,在客户端发送到服务器的视图模型上添加额外字段,其中可能有三个值添加、删除、更新

你最喜欢的解决方案是什么?向我推荐最佳实践,或者是否有专门的设计模式