Sembra che tu voglia fare questo
.------------.
/ Application \
/ .------. \
. < Domain > .
\ '------' /
\ /
'------------'
E non sei sicuro di come si adatta la scheda. Questo è il modello dell'adattatore :
Funzionabenequandoilflussodelcontrollostaandandodall'esternoversol'interno.Comesipuòmaitornareindietro?
Ecco un'architettura estremamente simile che mostra come risolvi questo problema:
Inomieleformesonodiversiedavverononcosìimportanti.Lacosabellaquiègiùinquell'angoloinbassoadestra.UncleBobchiamaunplugin(perchéognunodeveaverenomidiversiperquestecose).Mostracomeentrareeusciredaglistratiinferiorisenzacheledipendenzevadanonelladirezionesbagliata.<I>cosasegnaleinterfacce.
Tuttoquestosiriducealrispettodel principio dell'inversione di dipendenza . Di seguito puoi apparire come segue:
Sinoticomequestoassomiglimoltoall'adattatore?Ladifferenzaèsoloun'altrainterfaccia.Sembramoltosimileaquelplugin,segirileultime2caselledi90gradiepoicapovolgitutto.
Perme,tuttaquestaquestionedi"architettura" riguarda la gestione di ciò che è permesso sapere su cosa continua a fare le cose.
eri preoccupato di passare cose contenute nel dominio. Spero che questo ti mostri che dove qualcosa è contenuto non è il problema. Il problema è dove vive l'interfaccia. Noterai che l'interfaccia del presentatore non è nemmeno nello stesso livello. Dovresti fare affidamento sulle interfacce solo a patto che non siano definite dal core come te. In questo modo puoi sempre staccarti e scambiare gli strati esterni. Gli strati interni non sapranno che una cosa è cambiata. Non sanno degli strati esterni. Non vogliono saperlo.