我有一個DependancyInject的結構問題。「託管」取決於「經理」結構
形勢
我正在創建一個基於體素的遊戲服務器;它完全調製,但相關模塊以下3
NetworkModule(發送和接收的數據包) WorldModule(句柄世界相關的事件並存儲世界) 世界(存儲所有的塊和有球員在名單世界) 塊(具有的材料,並且某些其他字段)
問題
當setMaterial(材料材料)方法被調用在塊類中,「BlockChange」分組應當被髮送所有的世界上的玩家讓客戶知道該塊已改變類型。要發送該數據包,Block類必須能夠訪問NetworkModule。在WorldModule內部存儲有一個NetworkModule的實例。從技術上講,這可以輕鬆解決,只需將WorldModule或NetworkModule傳遞到每個Block類。對我來說,這些響起警鐘,它將管理人員與管理人員聯繫起來,同時也節省了這個實例的空間。我覺得必須有更好的方式來做到這一點,以便他們不依賴彼此。
實現靜態內存事件發佈。'Block'類將使用該靜態事件發佈者來發布'BlockChange'消息,另一部分軟件將監聽它並在網絡上重新發布它。 – plalx