Esiste davvero una cosa come l'architettura della cipolla?

2

Nota: BLL = Business Logic Layer (può anche significare il tuo dominio)

Sto cercando di capire l'architettura della cipolla. Mi sembra che sia effettivamente la stessa cosa dell'architettura a strati, solo con il principio di inversione di dipendenza (DIP) applicato. Ad esempio, questa è la tipica architettura a più livelli (le frecce rappresentano le dipendenze):

UI > BLL > DAL

Nota: ciò è semplificato e non dovrebbe implicare che DIP non possa / non venga utilizzato con esso. DIP significa semplicemente che dovremmo dipendere dalle astrazioni.

Questo è il tipico flusso di cipolla (anche semplificato):

UI > BLL < DAL

Si noti che l'ultima freccia è invertita. Il BLL ha le astrazioni, quindi sono al centro della cipolla e gli altri livelli lo fanno riferimento. Articolo di cipolla: link

Dato che sono abituato all'architettura a più livelli, volevo vedere come sarebbe il flusso se avessi combinato quello con DIP. Eccolo:

UI > [interfaccia] < BLL > [interfaccia] < DAL

Eccellente diagramma di DIP, che rispecchia questo. link

Ecco un articolo che spiega la differenza tra strati e cipolla. Mi ha fatto avere le domande che ho presentato sopra. link

Quindi la mia domanda è: qual è la differenza tra l'architettura a cipolla e l'architettura a strati con DIP? Ce n'è uno?

La mia domanda è stata contrassegnata come possibile duplicato di questo: Architettura onion vs architettura a 3 livelli Il mio è diverso perché voglio sapere se c'è davvero qualcosa come l'architettura della cipolla. Se affermi che l'architettura della cipolla è a strati + DIP, la cipolla esiste davvero? O vorrebbe dire che la cipolla è solo una versione di strati, come stratificata con cattive pratiche?

    
posta Bob Horn 15.02.2018 - 15:29
fonte

1 risposta

12

Mi sembra che la maggior parte delle cose "nuove" nell'architettura software siano vecchie idee rinnovate e combinate con nuove tecnologie o altre idee. Spesso questi sono incrementali.

In questo caso, la modifica che ritengo importante è che il database non è più il centro del design. Questo non è un piccolo cambiamento; è piuttosto fondamentale. Quindi la "architettura della cipolla" è davvero solo l'architettura a strati più il DIP? Può essere. Ma l'acciaio è grosso modo il ferro più il carbonio. Significa che l'acciaio non è una cosa reale?

Le parole sono etichette. Questo bloccato. Non sono sicuro di cos'altro dire al riguardo.

    
risposta data 15.02.2018 - 16:24
fonte

Leggi altre domande sui tag