Questa è solo una profezia che si autoavvera - ogni volta che trovi una dipendenza ciclica A < - > B dove né A né B possono essere scomposti in componenti più piccoli, questo ti dà un argomento sorprendente per avere A e B da combinare a singolo componente (AB). Finché discuti in quel modo, ovviamente non puoi arrivare a una conclusione diversa.
Prendiamo un esempio del mondo reale: Microsofts Scripting Runtime . Questa libreria contiene componenti "File" e "Cartella". Ogni file ha una cartella principale e ogni cartella può contenere un elenco di file. Quindi abbiamo effettivamente una dipendenza ciclica. Questi due componenti possono essere suddivisi in quelli più piccoli? Immagino non senza cambiare l'intera semantica. Hanno un comportamento? Naturalmente, nel file system ci sono degli oggetti che possono essere cancellati, interrogati, verificati per esistenza, spostati e così via. Dovrebbero essere combinati in un unico componente più grande? Bene, in un certo senso lo sono già, fanno entrambi parte della parte FileSystemObject
di Scripting Runtime e non puoi fare riferimento e utilizzare solo un componente File o Cartella. Ma ora questo si riduce solo al tuo punto di vista: su un livello di astrazione, questi due oggetti sono componenti diversi da soli, su un altro non lo sono. E puoi prendere questo come prova della tua ipotesi o di una confutazione, qualunque cosa ti piaccia.