Questa potrebbe essere una domanda facile per ingegneri esperti del software.
Attualmente sto leggendo il libro Clean Architecture di Uncle Bob, e sto cercando di implementare la pulizia architettura in un progetto Java.
Ora, nel mio progetto, mi sono imbattuto nella stessa identica situazione descritta qui nel capitolo 17 del libro:
Lalinearossaèilconfinetrailcomponentedelleregoledibusinessdialtolivelloeilcomponentedidatabasedibassolivello.GrazieaDatabaseInterface,chefapartedelcomponentedialtolivello,maimplementatonelcomponentedibassolivello,laregoladidipendenzaèsoddisfatta.
Tuttavia,inchemodoBusinessRulespuòottenereun'istanzadiunoggettocheimplementaDatabaseInterfacesenzaviolarelaregoladidipendenza?
LaclassediimplementazioneDatabaseAccesssitrovanelcomponentedibassolivelloeilcomponentedialtolivellonondevesaperenullasulleclassinelcomponentedibassolivello.
Inaltreparole,nonpossiamoistanziareunoggettoDatabaseAccessall'internodiBusinessRules,perchéciòviolerebbelaregoladidipendenza.
Inchemodoquestoproblemavienegeneralmenterisolto?
Nota:
LastessasituazioneèdescrittaanchenelCapitolo18:
E anche qui, in che modo Client può ottenere un'istanza di ServiceImpl senza violare la regola di dipendenza?
Il libro non fornisce alcun indizio su come ciò sia fatto nella pratica. Sarei molto interessato a sapere quale sia la strategia corretta per risolvere questa situazione.
