Buon design e come ottenere il Low Coupling?

3

cosa ne pensi di questo design?

In questa immagine ho riportato le dipendenze tra i pacchetti. Vorrei ridurre l'accoppiamento tra di loro, ma hai qualche idea su come farlo? Penso che sia impossibile ridurlo più di questo. Il pacchetto Preferenze è responsabile della gestione delle opzioni del programma, Persistenza invece di salvarle nella memoria. Applogic e modello sono nel livello dominio.

Grazie in anticipo!

    
posta ech0s7 26.03.2011 - 17:02
fonte

2 risposte

6

Dal mio punto di vista, la prima cosa è applicare una strategia di packaging appropriata. Questo può aiutare molto a progettare / organizzare le vostre classi / pacchetti e risolvere le dipendenze tra di loro. Una regola: sono consentite solo le dipendenze dall'alto al basso .
Intorno ai pacchetti, avendo un approccio modulare (anche se non usi OSGI) è la cosa migliore che puoi fare.

In primo luogo: strategia di packaging

Secondo: modularità

  • Fun With Modules

    [...] Tight coupling between modules is a bad idea, and the worst form of coupling is cyclic dependencies between modules. Fortunately, there are a few techniques we can use to break the cycle [...]

  • Modularità applicata: parte 1 , parte 2 , part 3 , parte 4

    This article explains how to "apply modularity" on a concrete and tight coupled Billing app.

risposta data 21.09.2011 - 11:23
fonte
5

Questo è già disaccoppiato, cosa vuoi di più?

Nella teoria dei grafi, il tuo ha quasi il numero minimo di bordi (solo uno in più del minimo) prima di iniziare a disconnettere i vertici.

Il triangolo App / Preferenze / Persistenza potrebbe sembrare sgradevole, ma va bene fintanto che App e Preferenze si occupano di parti logicamente diverse di Persistenza. E questo non ha nulla a che fare con l'accoppiamento, ma con il controllo, non vuoi che diverse parti di codice facciano lo stesso compito perché divergono nel tempo.

    
risposta data 26.03.2011 - 20:32
fonte

Leggi altre domande sui tag