Forskel mellem kobling og sammenhængskraft
Kobling vs Samhørighed
Kobling og sammenhængskraft er to begreber fundet i Java (og alle andre objektorienterede sprog). Kobling måler, hvor meget hver af programmodulerne er afhængig af de øvrige programmoduler. Samhørighed måler, hvor stærkt hver af funktionerne er relateret inden for et modul. Faktisk har ethvert objektorienteret sprog (herunder Java) de to hovedmål at øge sammenhængskraften og reducere koblingen på samme tid for at udvikle mest effektive programmer. Disse to software engineering metrics blev udviklet af Larry Constantine for at reducere omkostningerne ved at ændre og vedligeholde software.
Hvad er samhørighed?
Samhørighed måler, hvor stærkt hver af funktionerne er relateret inden for et programmodul. Velstrukturerede klasser fører til stærkt sammenhængende programmer. Hvis en bestemt klasse udfører et sæt højt relaterede funktioner, siges klassen at være sammenhængende. På den anden side, hvis en klasse udfører en masse fuldstændig uafhængige funktionaliteter, betyder det at klassen ikke er sammenhængende overhovedet. Det er vigtigt at forstå, at ikke at have sammenhængskraft betyder ikke, at den overordnede ansøgning ikke har den nødvendige funktionalitet. Det er bare det uden samhørighed, det vil være meget vanskeligt at fyre funktionaliteten, fordi de vil blive spredt på mange forkerte steder, da applikationens kompleksitet stiger over tid. Vedligeholdelse, ændring og udvidelse af adfærd spredt over hele koden er meget kedelig selv for de mest erfarne programmører.
Hvad er kobling?
Kobling måler, hvor meget hver af programmodulerne er afhængig af de øvrige programmoduler. Interaktioner mellem to objekter opstår, fordi der er kobling. Løskoblede programmer har høj fleksibilitet og udvidelighed. Stærk kobling er aldrig god, fordi en genstand kan være yderst afhængig af noget andet objekt. Dette er et mareridt, når koden er ændret, fordi høj kobling betyder, at programmørerne skal arbejde på flere steder af kode for endda en enkelt adfærdsmodifikation. Stærk kobling fører altid til programmer med lav fleksibilitet og mindre skalerbarhed / udvidelighed. Men i programmeringssprog som Java er det helt umuligt at undgå kobling. Men det anbefales, at programmørerne gør deres bedste for at reducere koblingen så meget som muligt. Det er også muligt at have nogle koblinger for at hjælpe objekter interagere med hinanden uden at hæmme dens skalerbarhed og fleksibilitet.
Hvad er forskellen mellem kobling og samhørighed?
Selvom kobling og samhørighed omhandler kvaliteten af et modul inden for software engineering, er de helt forskellige begreber.Samhørighed taler om, hvor meget funktionaliteten er relateret til hinanden inden for modulet, mens kobling omhandler hvor meget et modul er afhængigt af de øvrige programmoduler inden for hele applikationen. For at få den bedste kvalitetssoftware skal sammenhæng og kobling nå de to modsatte ender af deres spektrum. Med andre ord giver løs kobling og stærk sammenhæng den bedste software. At have private felter giver ikke-offentlige klasser og private metoder løs kobling, samtidig med at alle medlemmer bliver synlige i klassen og har pakke som standard synlighed giver høj sammenhæng.