Cohesion og kopling både måle forholdet mellom elementer av dataprogrammer . Kohesjon måler hvordan komponentene i en programvare -modul eller en klasse av programvare objekter i forhold til hverandre . Kopling måler forholdet mellom egne klasser og moduler . God programmering øker samhold og senker mengden av kopling . Cohesion
En klasse eller modul har høy samhold hvis alle ansvarsområdene , data og metoder som er inkludert er nært beslektet. Hvis et prosjekt - planlegging modul omfatter bare metoder eller funksjoner knyttet til planlegging , er det svært sammenhengende , hvis den også omfatter org diagrammer og en kundedatabase , er det mindre sammenhengende . For å måle samhold , beregne antall delte felt som metoder - subrutiner - i en klasse har tilgang til og sammenligne den med antall urelaterte felt de bruker. Jo større antall vanlige felt , jo større samhold
Betydning
p Hvis en modul har til å håndtere flere operasjoner - . Sikkerhet, infrastruktur , nettverk regler - det blir vanskeligere å jobbe med enn om alt i modulen fokuserer på ett enkelt formål . Med en lav - samhold modell , må du kanskje gjøre flere ikke-relaterte endringer fordi hver del trenger en annen løsning eller lapp . Derimot, hvis tilhørende funksjoner er delt inn i flere filer i stedet for én sammenhengende filer , må du kanskje gjøre gjentatte identiske endringer i hver fil i stedet for en enkelt fix til en enkelt fil .
kobling
Når programvaren design bruker stramt kopling mellom klasser eller delsystemer , som betyr at de er koblet sammen : System A ikke kan utføre jobben sin uten å vite detaljer om hva System B gjør, og en endre til B betyr en har til å endre så vel . Med løs kobling , kan du endre System En lettere. Det er også vanskeligere å studere koden for A hvis du ikke kan forstå det uten å analysere koden for B og deres forhold .
Effektivitet
lav kopling gjør koding mer effektiv fordi du kan gjenbruke mer kode : Hvis System A og System B ikke er avhengige av hverandre , kan du kopiere denne koden til ett av dem inn i et annet program uten problemer . Programvare som omfatter dupliserte koding for dupliserte funksjoner er et annet tegn på ineffektivitet. Du er ofte bedre hvis du skrive om programmet til å eliminere like funksjoner , og deretter tilordne funksjonen til sin egen sammenhengende modul . Jo lavere nivå av kopling, de enklere slike omfattende endringer bli.