Forskjellen mellom kobling og kohesjon

Kobling mot kohesjon

Kobling og kohesjon er to begreper som finnes i Java (og alle andre objektorienterte språk). Kobling måler hvor mye hver av programmodulene er avhengig av de andre programmodulene. Samhørighet måler hvor sterkt hver av funksjonene er relatert i en modul. Faktisk har ethvert objektorientert språk (inkludert Java) de to hovedmålene med å øke kohesiviteten og redusere koplingen samtidig, for å utvikle mest effektive programmer. Disse to programvare engineering beregninger ble utviklet av Larry Constantine for å redusere kostnadene ved å modifisere og vedlikeholde programvare.

Hva er Cohesion?

Samhørighet måler hvor sterkt hver av funksjonene er relatert innenfor en programmodul. Velstrukturerte klasser fører til høyt sammenhengende programmer. Hvis en bestemt klasse utfører et sett med høyt beslektede funksjoner, sies denne klassen å være sammenhengende. På den annen side, hvis en klasse utfører en haug med helt uavhengige funksjoner som betyr at klassen ikke er sammenhengende i det hele tatt. Det er viktig å forstå at ikke å ha sammenholdskraft betyr ikke at den generelle applikasjonen ikke har den nødvendige funksjonaliteten. Det er bare det uten samhold, vil det være veldig vanskelig å skape funksjonaliteten fordi de vil bli spredt på mange feil steder, da applikasjonens kompleksitet øker over tid. Opprettholde, endre og utvide atferd spredt over hele koden er veldig kjedelig selv for de mest erfarne programmene.

Hva er kobling?

Kobling måler hvor mye hver av programmodulene er avhengig av de andre programmodulene. Interaksjoner mellom to objekter oppstår fordi det er kobling. Løskoblede programmer har høy fleksibilitet og utvidbarhet. Sterk kopling er aldri bra fordi ett objekt kan være svært avhengig av noe annet objekt. Dette er et mareritt når koden er endret, fordi høy kobling betyr at programmererne må jobbe på flere steder med kode for enda en enkelt adferdsendring. Sterk kobling fører alltid til programmer med lav fleksibilitet og mindre skalerbarhet / utvidbarhet. Men i programmeringsspråk som Java er det helt umulig å unngå kobling. Men det anbefales at programmererne gjør sitt beste for å redusere koblingen så mye som mulig. Det er også mulig å ha noen koblinger for å hjelpe objekter samhandle med hverandre uten å hindre skalerbarheten og fleksibiliteten.

Hva er forskjellen mellom kobling og kohesjon?

Selv om kobling og samhold handler om kvaliteten på en modul i programvareingeniør, er de helt forskjellige begreper. Samhørighet snakker om hvor mye funksjonaliteten er relatert til hverandre i modulen, mens kobling omhandler hvor mye en modul er avhengig av de andre programmodulene i hele applikasjonen. For å få den beste kvalitetsprogramvaren, bør kohesjon og kopling nå de to motsatte ender av spektrumene. Med andre ord gir løs kopling og sterk kohesjon den beste programvaren. Å ha private felt, gir ikke-offentlige klasser og private metoder løs kopling, samtidig som alle medlemmer blir synlige i klassen og har pakke som standard synlighet gir høy kohesjon.