3

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

我有一个表示业务对象的场景图。我对其进行了设计,以使业务对象本身尽可能简单。它们实际上是 POJO。

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

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

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

由于所有更改都是从视图启动的,所以现在我在场景图上递归并强制重新加载与更改的实体关联的所有节点。不过感觉不太对。

关于如何做得更好的任何建议?

4

2 回答 2

3

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

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

于 2009-11-18T17:17:01.923 回答
2

实体应将其更新发布到单个队列中,然后可以由负责更新视图的对象轮询。

于 2009-11-18T17:04:45.083 回答