class Foo
{
Bar b;
List<Foo> Neighbours;
}
class Bar
{
Spam s;
List<Bar> Neighbours;
}
class Spam
{
List<string> Neighbours;
}
这些类中的每一个都有 AddNeighbour
、RemoveNeighbour
方法。
用户可以随机添加/删除任何类(class)的邻居。
我希望这三个对象同步。
我该怎么做?
最佳答案
选项一 - 在更新时让 Foo 调用 Bar,而 Bar 调用 Spam。这将导致紧密耦合的对象,您可能还需要让 Spam 回调到 Bar,后者回调到 Foo 以在另一个方向同步,yuk。
选项二 - 有一个类可以观察三个对象中的每一个对象,并在一个对象发生变化时更新其他对象。 (外部同步器)
选项三 - 修改设计并将数据存储在一个类中,并实现三个接口(interface)以 List
选项四 - 有一个更新的公共(public)数据模型,每个对象观察它并从数据模型同步它自己的内部列表
编辑 - 根据您的评论,这是针对三个图表的,观察者模式可能是执行此操作的最佳方式。有一个单一的通用数据模型,每个模型都在观察并适应其服务的图形所需的特定类型。
关于c# - 如何同步三个类(class)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2808795/