在对象/class 属性之间共享变量

Sharing variables between objects / class properties

所以我有一个 "world" 对象,其中包含 "tiles" 的列表。我还有一个 "island" 对象,其中包含 "tiles" 的 "world" 对象列表中的某些 "tiles"。出于外部目的,我想将世界和岛屿作为对象/classes.

我希望能够更改世界列表中图块的值,并在图块中观察到这些变化 class,反之亦然。

基本上我想要:

class World {
    List<Tile> tiles;
}

class Islands {
    // ref here is not syntax
    List<ref Tile> tiles;
}

但是 ref 不允许作为列表中的类型参数。我可以通过某种方式实现此行为,同时使它们尽可能接近对象/class并且没有重复的图块。

不是 100% 清楚您的要求。但是,如果您想共享图块,那么 WorldIsland 引用都会自动看到这些图块值的变化,因为它们正在共享实例(必须是 类 而不是结构).不过,这是 被动 。如果您需要在这些变化发生时发生某些事情(例如告诉 WorldIsland 观察并注意),那么实施一个在 属性 变化时引发的事件。

如果您需要完全替换瓦片并希望观察该变化,则实施一个间接层;例如,TileReferenceTile 属性。当 属性 发生变化时,您可以引发一个事件,处理程序可以观察到全新的图块。