gpt4 book ai didi

java - 观察者模式过载

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:58:59 25 4
gpt4 key购买 nike

我遇到了以下情况。它有一种代码味道,我对此并不满意,但它的解决方案似乎同样复杂,只是方式不同。

我有一个代表业务对象的场景图。我设计它的目的是使业务对象本身尽可能简单。它们实际上是 POJO。

现在,1个实体可能被不同的节点显示在场景图的多个区域。

当实体发生变化时,所有相关的场景图节点都应该发生变化。

我对是否在我的所有实体上使用观察者模式犹豫不决,因为我一次在屏幕上有超过 50000 个实体。

由于所有更改都是从 View 发起的,现在我正在递归场景图并强制重新加载与更改的实体关联的所有节点。虽然感觉不对。

关于如何做得更好有什么建议吗?

最佳答案

业务对象 == 实体?您有 50k 个实体在屏幕上表示为节点,一些实体具有多个节点。用户操作会改变实体的状态,因此必须更新某些节点。但是实体当然不知道节点。

我会让代理对象包装实体。他了解与节点的关系。对实体的更新通过他,因此他可以完成更新,然后通知相关节点。这有效地避免了必须迭代节点集来寻找更新。

关于java - 观察者模式过载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1757487/

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