所以我有一個(gè)包含“瓷磚”列表的“世界”對(duì)象。我還有一個(gè)“島”對(duì)象,其中包含來(lái)自“世界”“瓷磚”對(duì)象列表中的某些“瓷磚”。出于外部目的,我想將世界和島嶼保留為對(duì)象/類。我希望能夠更改世界列表中圖塊的值,并在圖塊類中觀察到這些更改,反之亦然?;旧衔蚁胍篶lass World { List<Tile> tiles;}class Islands { // ref here is not syntax List<ref Tile> tiles;}但是ref在列表中不允許作為類型參數(shù)。我可以通過(guò)某種方式實(shí)現(xiàn)此行為,同時(shí)使它們盡可能接近對(duì)象/類并且沒(méi)有重復(fù)的圖塊。
1 回答

catspeake
TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊
不是 100% 清楚您的要求。但是,如果您想共享圖塊,那么World
和Island
引用都會(huì)自動(dòng)看到這些圖塊值的變化,因?yàn)樗鼈冋诠蚕韺?shí)例(必須是類而不是結(jié)構(gòu))。雖然這是被動(dòng)的。如果您需要在這些更改發(fā)生時(shí)發(fā)生某些事情(例如,告訴World
或Island
查看和注意),那么實(shí)現(xiàn)一個(gè)在屬性更改時(shí)引發(fā)的事件。
如果你需要完全替換一個(gè) tile 并想觀察那個(gè)變化,那么就實(shí)現(xiàn)一個(gè)間接層;例如,TileReference
具有Tile
屬性的 a。當(dāng)該屬性發(fā)生變化時(shí),您可以引發(fā)一個(gè)事件,處理程序可以觀察到全新的磁貼。
- 1 回答
- 0 關(guān)注
- 96 瀏覽
添加回答
舉報(bào)
0/150
提交
取消