C'è un modo per evitare dipendenze circolari, diversi miscelazione moduli, in una disposizione simile (è un'applicazione scacchi)come evitare dipendenze circolari qui
descrizione lunga:
- C'è il modulo
Gui
che importa un moduloChessWidget
; ChessWidget
semplicemente avvolge il moduloChessWorld
e importaCellButton
;- Il modulo
CellButton
importa il moduloCell
; - Il modulo
ChessWorld
importaBoard
(per rappresentarlo) ePlayers
(per avvisare e recuperare le loro mosse); - Il modulo
Board
importa il moduloPiece
; - Il modulo
Piece
importa moduloPlayer
;
E qui è il problema:
Il modulo Player
ha bisogno di conoscere altri giocatori e il consiglio, l'importazione in tal modo ChessWorld
!
Breve descrizione:
Il modulo World
ha bisogno di sapere sul modulo Player
(anche indirettamente da Board
/Piece
) e Player
bisogno di conoscere World
.
L'aiuto è molto apprezzato.
PS: Non è perché non posso usare le dipendenze circolari, ma perché sono malvagie.
IMHO, questo non risolve la dipendenza circolare. È ancora lì, ma gestito da un contenitore DI e liberamente accoppiato tramite interfacce. – Cohen
Le dipendenze hanno una direzione, ad es. A-> B-> C-> A è circolare, ma se inverti una qualsiasi delle frecce non è più un cerchio. –