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
Guimodule which imports aChessWidgetmodule; ChessWidgetjust wraps theChessWorldmodule and importsCellButton;- The
CellButtonmodule imports the moduleCell; - The
ChessWorldmodule importsBoard(to represent it) andPlayers(to notify them and fetch their moves); - The
Boardmodule imports modulePiece; - The
Piecemodule imports modulePlayer;
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.