Is there a way to avoid circular dependencies, other than mixing modules, in a arrangement like this(it is a chess application)
Long description:
- There is the
Gui
module which imports a ChessWidget
module;
ChessWidget
just wraps the ChessWorld
module and imports CellButton
;
- The
CellButton
module imports the module Cell
;
- The
ChessWorld
module imports Board
(to represent it) and Players
(to notify them and fetch their moves);
- The
Board
module imports module Piece
;
- The
Piece
module imports module Player
;
AND HERE IS THE PROBLEM:
The Player
module needs to know about other players and the board, thus importing ChessWorld
!
Short description:
The World
module needs to know about the Player
module (even indirectly by Board
/Piece
) and Player
need to know about World
.
Help is very appreciated.
PS: Is not because I cant use circular dependencies, but because they are evil.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…