La coesione nell'ingegneria del software, come nella vita reale, è quanto gli elementi che costituiscono un insieme (nel nostro caso diciamo una classe) si può dire che effettivamente appartengono insieme. Pertanto, è una misura di quanto fortemente correlata ogni funzionalità espressa dal codice sorgente di un modulo software.
Un modo per osservare la coesione in termini di OO è se i metodi nella classe utilizzano uno degli attributi privati.
Ora la discussione è più grande di questo, ma High Cohesion (o meglio il tipo di coesione - la coesione funzionale) è quando parti di un modulo sono raggruppati perché tutti contribuiscono a una singola attività ben definito del modulo.
accoppiamento in parole semplici, è quanto un componente (di nuovo, immaginare una classe, anche se non necessariamente) conosce il funzionamento interno o elementi interni di un altro, ossia quanta conoscenza ha dell'altro componente.
allentata accoppiamento è un metodo di interconnessione dei componenti di un sistema o una rete in modo che tali componenti, dipendono l'uno dall'altro per il meno praticamente possibile ...
I wrote a blog post su questo. Discute di tutto questo in modo molto dettagliato, con esempi ecc. Inoltre spiega i vantaggi del perché dovresti seguire questi principi.
Per una spiegazione più dettagliata, è possibile scegliere la risposta da questo post [Coesione e accoppiamento] (http://stackoverflow.com/questions/3085285/cohesion-coupling) – Infinity
[Questa risposta] (http: // stackoverflow.com/a/3085419/2623749) è certamente migliore e conciso di quelli qui indicati. – Lokesh