快速正确的访问

时间:2015-11-19 08:43:50

标签: c#

我正在创建一个游戏,每个玩家控制一个国家/地区。国家有 一个list of MilitaryUnitsMilitaryUnits在二维地图上有位置。如果我想获得位置上的MilitaryUnit(2,3),然后查看他所属的国家/地区,我需要在其所有者所在国家/地区MilitaryUnit中设置一个字段,但这样做两个班级将指向彼此。有没有更好的方法呢?

1 个答案:

答案 0 :(得分:0)

如果您想要双向映射,则必须在某处存储这些信息。 (所以你需要两个指针/参考/等。) 我不知道你的软件的确切架构和算法,但我认为这些信息的正确位置恰好在相互引用的类中。 (特别是在面向对象的设计中。)

如果此引用导致问题,您可以使用外部映射(在所提及的类之外),例如

Dictionary<MilitaryUnit,Country> UnitToCountry;
Dictionary<Country, Set<MilitaryUnit>> CountryToUnits;

但这不是更好,也不是最有效,但在某些软件架构中可能需要。

所以,如果你使用C#,它不会给你造成架构问题,我认为完全可以引用彼此的两个类。