【发布时间】:2019-03-04 04:57:51
【问题描述】:
目标是确保对象之间的双重链接,即如果我将对象 A 链接到对象 B,那么对象 B 应该自动链接到对象 A。
这种系统的潜在用途之一可能是为无向图建模。
我只是想出了这样一个愚蠢的实现:
class ObjA
{
public _addLink (object Obj)
{
<add code to store the single link to Obj>
}
public addLink (object Obj)
{
_addLink(Obj);
Obj._addLink(this);
}
}
class ObjB
{
public _addLink (object Obj)
{
<add code to store the single link to Obj>
}
public addLink (object Obj)
{
_addLink(Obj);
Obj._addLink(this);
}
}
那我可以写了
ObjA.addLink(ObjB)
但问题是在这种情况下我也可以做到
ObjA._addLink(ObjB)
系统中断,即 ObjB 没有获得到 ObjA 的链接。而且我不能将 _addLink 设为私有,因为它不会被其他对象看到。
实现这一目标的最佳方法是什么?
【问题讨论】:
-
自反链接不模拟单向图,因此您的要求似乎是矛盾的
标签: c# oop object graph linked-list