Domanda

Quali sono coesione e disaccoppiamento? Ho trovato informazioni su accoppiamento ma non di disaccoppiamento.

È stato utile?

Soluzione

Tale articolo di Aaron è molto buono per la comprensione, anche io consiglierei di leggere Manning Publications Primavera in azione libro , danno ottimi esempi di come le risolve primaverili che il problema sarà sicuramente migliorare la comprensione di questo.

Modifica

Sono venuto attraversavano questo in questo grande libro chiamato Crescere software orientato agli oggetti guidato dai test:

accoppiamento:

  

Gli elementi vengono accoppiati se un cambiamento   uno forze di un cambiamento nell'altra. Per   esempio, se due classi ereditano da una   genitore comune, allora un cambiamento in uno   classe potrebbe richiedere una modifica della   altro. Pensate ad un sistema di combo audio:   È strettamente legato perché se   vogliono cambiare da analogico a digitale   radio, dobbiamo ricostruire l'intera   sistema. Se montiamo un sistema da   separa, avrebbe accoppiamento basso   e potremmo semplicemente scambiare la   ricevitore. caratteristiche “Liberamente” accoppiati   (Cioè quelli con accoppiamento basso) sono   più facile da mantenere.

di coesione:

  

Un elemento di coesione è una misura   dal fatto che le sue responsabilità formano un   un'unità significativa. Ad esempio, una classe   che analizza entrambe le date e gli URL non è   coerenti, perché sono estranei   concetti. Pensate a una macchina che   lava entrambi i vestiti e piatti: è   improbabile che fare entrambe le cose well.2 Al   All'altro estremo, una classe che analizza   solo la punteggiatura in un URL è   improbabile che sia coerente, perché   non rappresenta un intero concetto. Per   fare niente, il programmatore   dovrà trovare altri parser per   protocollo, di accoglienza, di risorse, e così via.   Caratteristiche con coerenza “alto” sono   più facile da mantenere.

Altri suggerimenti

di coesione - legata al principio che un / metodo di classe dovrebbe essere responsabile per una cosa solo cioè non esistono metodi randagi che non appartengono alla incapsulamento; un metodo non solo una cosa. High / Low di coesione è il grado in cui questo vale.

Accoppiamento - come interdipendenti diverse parti del sistema sono. per esempio come e dove ci sono dipendenze. Se due classi effettuare chiamate ai metodi di ogni altro allora sono strettamente accoppiati, come cambiando una significherebbe dover cambiare l'altro. Disaccoppiamento è il processo di fare qualcosa che è stato strettamente meno, non agganciati affatto.

sistemi flessibili hanno alta coesione e allentato accoppiamento.

Per l'accoppiamento, questo articolo Wikipedia dovrebbe rispondere a tutte le vostre domande. Questo articolo si occupa con la coesione.

"disaccoppiamento" è solo un altro nome per "piccolo / basso accoppiamento".

Quindi questi termini rispondere a queste domande:

  • Quanto ogni parte del vostro progetto dipende da un'altra parte?
  • Se si voleva utilizzare solo una parte del progetto (come per risolvere un problema specifico) quanto avete bisogno di sapere a tutto il resto del progetto?
  • È ogni parte del vostro progetto si è concentrato su una sola soluzione a un problema specifico o non soluzioni "fuga" in altre parti?

Qui ci sono i miei pensieri sulla coesione. Immaginate che ci sia un modulo. Dentro quel modulo, abbiamo alcuni compiti. Quando queste attività sono altamente correlate tra loro, ci dicono che ha alta coesione. Quando questi compiti non sono legati, diciamo che ha una bassa coesione. Il mio migliore tentativo di spiegare disaccoppiamento è che il disaccoppiamento è l'atto di rimozione di accoppiamento.

Low Coupling ci aiuta ad alta coesione! Ricordate che vogliamo che il nostro modulo di avere attività correlate e una singola responsabilità. Ma che cosa è l'accoppiamento? L'accoppiamento è il grado di dipendenza da altri moduli per ottenere la nostra responsabilità singola per quel modulo. Così da accoppiamento basso, diciamo che non siamo molto dipendenti moduli esterni quindi abbiamo alta coesione.

Tuttavia, se abbiamo molte dipendenze ai moduli esterni, avremmo accoppiamento alto e bassa coesione. Get it?

Altri pensatori e gruppi più decorati dicono:

La coesione è il grado in cui i compiti svolti da un singolo modulo funzionalmente correlate. "IEEE 1983" di coesione è la 'colla' che tiene insieme un modulo. Esso può essere pensato come il tipo di associazione tra gli elementi componenti di un modulo. In generale, si vuole il più alto livello di coesione possibile ". Bergland 1981

Un componente software è detto di presentare un elevato grado di coesione se gli elementi di tale unità presentano un elevato grado di parentela funzionale. Questo significa che ogni elemento nell'unità programma dovrebbero essere essenziale per tale unità a raggiungere il suo scopo. Sommerville 1989

disaccoppiamento consente la separazione di interazione dell'oggetto da classi e ereditarietà in strati distinti di astrazione utilizzati per polimorfico-ally disaccoppiare l'incapsulamento che è la pratica di utilizzare il codice riutilizzabili per impedire moduli di codice discreti di interagire con l'altro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top