Principio di inversione delle dipendenze: Comprendere come sia le componenti di basso livello che i componenti di alto livello dipendono dalle astrazioni

8

Sto imparando il principio di inversione delle dipendenze. Dichiara che:

High level modules should not depend upon low-level modules. Both should depend upon abstractions.

Per un po 'ho cercato di capire cosa significa che sia i componenti di alto livello che i componenti di basso livello si basano sulle astrazioni e sono dipendenti da loro .

Suppongo che entrambi dovrebbero dipendere dalla stessa astrazione in qualche modo. Per favore correggimi se questo è sbagliato.

Sono arrivato a qualche conclusione su cosa significhi. Si prega di confermare se questo è accurato.

" I componenti di alto livello dipendono dall'astrazione" - Significato:

I componenti di alto livello parlano con un'interfaccia per comunicare con i componenti di basso livello , invece di comunicare direttamente con componenti di basso livello concreti. I componenti di basso livello implementano questa interfaccia.

" I componenti di basso livello dipendono dall'astrazione" - Significato:

I componenti di basso livello sono definiti e progettati nei termini dell'interfaccia. Sono progettati per adattarsi all'interfaccia . Sono dipendenti dall'interfaccia, nel modo in cui l'interfaccia definisce come sono progettati. (Spesso le classi di basso livello implementano tale interfaccia).

In questo modo, sia i componenti di alto livello che quelli di basso livello sono "dipendenti dall'astrazione", ma in modi diversi.

Questa è una buona comprensione?

    
posta Aviv Cohn 06.04.2014 - 16:11
fonte

2 risposte

4

La tua comprensione del concetto è molto accurata.

Indicando eccezioni, casi speciali o minuzie filosofiche in questo momento ti starei allontanando dalla tua attuale chiarezza concettuale.

Suggerirei, tuttavia, di utilizzare i simboli UML:

  • Apri freccia: utilizza
  • Freccia chiusa: eredita o implementa
  • < < nome tra parentesi > > : interfaccia o classe astratta
risposta data 30.04.2014 - 20:35
fonte
0

Sì, molte persone pensano alla costruzione di software come alla costruzione di edifici. Il DB è la "base" su cui si trova il DAL, il Business Layer si trova sul DAL, l'interfaccia utente si trova sul Business Layer ...

Pensa ad esso come a un cellulare appeso. Dove gli "strati" pendono da un'ancora comune. UI e Business Layer si bloccano entrambi dall'interfaccia aziendale, dal Business Layer e dal DAL, entrambi bloccati dall'interfaccia DAL, DAL e Database connessi tramite l'interfaccia DB.

    
risposta data 30.04.2014 - 20:49
fonte

Leggi altre domande sui tag