Passaggio di informazioni tra un adattatore e il livello applicazione su architettura esagonale

1

Dopo aver avviato la progettazione di un'applicazione di esempio con Hexagonal Architecture sono arrivato al livello dell'applicazione che dovrebbe essere fondamentalmente un'API per manipolare il dominio in qualche modo. La mia domanda è: in quale forma devo passare i parametri al livello dell'applicazione? Non posso passare nulla contenuto nel dominio perché renderebbe l'adapter dipendente direttamente sul dominio. Ho pensato di utilizzare DTO ( link ) per passare le informazioni dall'adattatore al livello dell'applicazione, ma non sono sicuro che questa sia l'idea migliore .

Qualsiasi suggerimento basato su esperienze passate.

    
posta Lucas Piske 11.09.2016 - 04:53
fonte

1 risposta

3

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.

    
risposta data 12.09.2016 - 07:08
fonte

Leggi altre domande sui tag