有沒有辦法避免循環依賴,比混合模塊,在這樣的佈置之外循環依賴(這是一款國際象棋應用程序)如何避免此
長描述:
- 有
Gui
模塊,它導入一個ChessWidget
模塊; ChessWidget
只是包裝ChessWorld
模塊和進口CellButton
;CellButton
模塊導入模塊Cell
;ChessWorld
模塊導入Board
(表示它)和Players
(通知他們並取回他們的動作);Board
模塊進口模塊Piece
;Piece
模塊進口模塊Player
;
這裏的問題是:
的Player
模塊需要了解其他玩家和電路板,從而導入ChessWorld
!
簡短說明:
的World
模塊需要知道關於Player
模塊(甚至間接Board
/Piece
)和Player
需要了解World
。
幫助非常感謝。
PS:不是因爲我不能使用循環依賴,而是因爲它們是邪惡的。
恕我直言,這不解決循環依賴。它仍然存在,但由DI容器處理並通過接口鬆散耦合。 – Cohen 2010-01-07 10:22:19
相關性有一個方向,例如A-> B-> C-> A是圓形的,但如果你反轉任何一個箭頭,它不再是一個圓。 – 2010-01-07 15:46:24