Forskellen mellem kobling og samhørighed

Kobling vs samhørighed

Kobling og samhørighed er to koncepter, der findes i Java (og alle andre objektorienterede sprog). Kobling måler, hvor meget hvert af programmodulerne er afhængige af de andre programmoduler. Samhørighed måler, hvor stærkt hver af funktionerne hænger sammen i et modul. Faktisk har ethvert objektorienteret sprog (inklusive Java) de to hovedmål at øge sammenhængen og mindske 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 funktion er relateret til et programmodul. Godt strukturerede klasser fører til meget sammenhængende programmer. Hvis en bestemt klasse udfører et sæt meget relaterede funktioner, siges den klasse at være sammenhængende. På den anden side, hvis en klasse udfører en masse fuldstændigt ikke-relaterede funktionaliteter, betyder det, at klassen overhovedet ikke er sammenhængende. Det er vigtigt at forstå, at ikke at have sammenhængighed ikke betyder, at den samlede applikation ikke har den krævede funktionalitet. Det er bare det, uden samhørighed, det vil være meget vanskeligt at tackle funktionaliteten, fordi de vil være spredt på mange forkerte steder, når kompleksiteten af ​​applikationen øges over tid. At opretholde, ændre og udvide adfærd spredt over hele koden er meget trættende selv for de mest erfarne programmerere.

Hvad er kobling?

Kobling måler, hvor meget hvert af programmodulerne er afhængige af de andre programmoduler. Interaktion mellem to objekter opstår, fordi der er kobling. Løst-koblede programmer har stor fleksibilitet og strækbarhed. Stærk kobling er aldrig god, fordi et objekt kan være meget afhængigt af et andet objekt. Dette er et mareridt, når koden ændres, fordi høj kobling betyder, at programmererne er nødt til at arbejde på flere kodepladser for endda en enkelt adfærdsændring. Stærk kobling fører altid til programmer med lav fleksibilitet og mindre skalerbarhed / strækbarhed. I programmeringssprog som Java er det umuligt at undgå fuldstændig kobling. Men det anbefales, at programmererne gør deres bedste for at reducere koblingen så meget som muligt. Det er også muligt at have en vis kobling for at hjælpe genstande med at interagere med hinanden uden at hindre dens skalerbarhed og fleksibilitet.

Hvad er forskellen mellem Kobling og Samhørighed?

Selvom kobling og samhørighed beskæftiger sig med kvaliteten af ​​et modul i software engineering, er de helt forskellige koncepter. Samhørighed taler om, hvor meget funktionaliteten er relateret til hinanden i modulet, mens koblingen handler om, hvor meget et modul er afhængig af de andre programmoduler inden for hele applikationen. For at have software af bedste kvalitet skal samhørighed og kobling nå de to modsatte ender af deres spektrum. Med andre ord, løs kobling og stærk samhørighed giver den bedste software. At have private felter, ikke-offentlige klasser og private metoder giver løs kobling, mens alle medlemmer bliver synlige i klassen og har pakken som standard synlighed giver høj samhørighed.