Есть ли способ избежать круговых зависимостей, кроме смешивания модулей, в такой схеме (это шахматное приложение)
Длинное описание:
- Существует модуль
Gui
, который импортирует модульChessWidget
; -
ChessWidget
просто обертывает модульChessWorld
и импортируетCellButton
; - Модуль
CellButton
импортирует модульCell
; - Модуль
ChessWorld
импортируетBoard
(для его представления) иPlayers
(чтобы уведомить их и получить их ходы); - Модуль модуля
Board
импортирует модульPiece
; - Модуль модуля
Piece
импортирует модульPlayer
;
И ЗДЕСЬ ПРОБЛЕМА:
Модуль Player
должен знать о других игроках и плате, импортируя ChessWorld
!
Краткое описание:
Модуль World
должен знать о модуле Player
(даже косвенно Board
/Piece
) и Player
должен знать о World
.
Помощь очень приветствуется.
PS: Не потому, что я не могу использовать круговые зависимости, а потому, что они злы.