2013-03-07 16 views

risposta

17

Secondo wikipedia:

Afferent Giunti (Ca): Il numero di classi in altri pacchetti che dipendono classi all'interno del pacchetto è un indicatore della responsabilità del pacchetto. Afferent = incoming.

Giunti efferenti (Ce): Il numero di classi in altri pacchetti da cui dipendono le classi nel pacchetto è un indicatore della dipendenza del pacchetto dalle esternalità. Efferente = in uscita.

Quindi, se si dispone di classi (o pacchetti o altro) con la seguente struttura:

class Foo { 
    Quux q; 
} 

class Bar { 
    Quux q; 
} 

class Quux { 
    // ... 
} 

Poi Foo e Bar hanno ciascuno una efferente accoppiamento, e Quux ha due afferente accoppiamenti .

+0

L'affiliazione Afferent è un indicatore migliore del principio di responsabilità individuale praticato? – user20358

+0

@ user20358 - Non sono il miglior architetto, ma non penso che indichi molto. Una classe con troppi accoppiamenti afferenti potrebbe essere usata molto perché fa troppo. O potrebbe semplicemente gestire una sorta di preoccupazione trasversale: la registrazione, l'unità di lavoro ORM, cose del genere. – millimoose

9

Dal momento che lei ha citato Sonar, qui è la definizione fornita da their documentation page

  • giunti afferenti: A giunti classe afferenti è una misura di quanto molte altre classi utilizzano la classe specifica.
  • Giunti efferenti: un accoppiamento efferente di classe è una misura di come vengono utilizzate dalla classe specifica molte classi diverse.
+1

farebbe una composizione oggettuale con accoppiamento efferente allora? – user20358

0

L'accoppiamento è una misura delle dipendenze.

afferenti Coupling:

  • Chi dipende da voi.
  • Misura di quanti altri pacchetti utilizzano un pacchetto specifico.
  • Dipendenze in entrata.

efferenti Coupling:

  • Chi è a carico.
  • Misura del numero di pacchetti diversi utilizzati da un pacchetto specifico.
  • Dipendenze in uscita.