我坚持以下情况。它有一个代码气味,我不满意,但是它的解析似乎很复杂,但是只是以不同的方式。
我有一个表示业务对象的场景图。我对其进行了设计,以使业务对象本身尽可能地简单。它们实际上是POJO。
现在,可能会通过不同的节点在场景图的多个区域中显示1个实体。
当实体更改时,所有相关的场景图节点都应更改。
我不愿在所有实体上使用观察者模式,因为我一次在屏幕上有超过50000个实体。
因为所有更改都是从视图启动的,所以现在我要遍历场景图,并强制重新加载与更改后的实体关联的所有节点。不过感觉不对。
关于如何更好地做任何建议?
最佳答案
业务对象==实体?您有50k表示为屏幕上的节点,有些实体具有多个节点。用户操作改变了实体的状态,因此必须更新某些节点。但是,当然,实体不了解节点。
我会有包装对象的代理对象。他了解与节点的关系。对实体的更新将通过他进行,因此他可以完成更新,然后通知相关节点。有效地,这避免了必须迭代节点组以寻找更新。