Forskellen mellem kobling og sammenhæng

Forskellen mellem kobling og sammenhæng
Forskellen mellem kobling og sammenhæng

Video: Forskellen mellem kobling og sammenhæng

Video: Forskellen mellem kobling og sammenhæng
Video: Джошуа Фор: Трюки памяти, на которые способен каждый 2024, Juli
Anonim

Coupling vs Cohesion

Kobling og sammenhæng er to begreber, 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 er relateret inden for et modul. Faktisk har ethvert objektorienteret sprog (inklusive Java) de to hovedformål at øge sammenhængen og mindske koblingen på samme tid for at udvikle de mest effektive programmer. Disse to software engineering-metrikker blev udviklet af Larry Constantine for at reducere omkostningerne ved at ændre og vedligeholde software.

Hvad er samhørighed?

Cohesion måler, hvor stærkt hver af funktionerne er relateret i et programmodul. Velstrukturerede 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ændig urelaterede funktioner, betyder det, at klassen slet ikke er sammenhængende. Det er vigtigt at forstå, at manglende sammenhæng ikke betyder, at den samlede applikation ikke har den nødvendige funktionalitet. Det er bare, at uden sammenhæng vil det være meget svært at styre funktionaliteten, fordi de vil blive spredt mange forkerte steder, efterhånden som kompleksiteten af applikationen stiger over tid. Vedligeholdelse, ændring og udvidelse af adfærd spredt over hele koden er meget trættende selv for de mest erfarne programmører.

Hvad er kobling?

Kobling måler, hvor meget hvert af programmodulerne er afhængige af de andre programmoduler. Interaktioner mellem to objekter opstår, fordi der er kobling. Løst koblede programmer er høje i fleksibilitet og udvidelsesmuligheder. Stærk kobling er aldrig godt, fordi et objekt kan være meget afhængigt af et andet objekt. Dette er et mareridt, når koden modificeres, fordi høj kobling betyder, at programmørerne skal arbejde på flere kodesteder for selv en enkelt adfærdsændring. Stærk kobling fører altid til programmer med lav fleksibilitet og mindre skalerbarhed/udvidelsesmuligheder. I programmeringssprog som Java er det dog umuligt helt 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 en vis kobling for at hjælpe objekter med at interagere med hinanden uden at hæmme dets skalerbarhed og fleksibilitet.

Hvad er forskellen mellem Coupling og Cohesion?

Selv om kobling og sammenhæng handler om kvaliteten af et modul i softwareudvikling, er det helt forskellige koncepter. Cohesion taler om, hvor meget funktionaliteten er relateret til hinanden inden for modulet, mens kobling handler om, hvor meget et modul er afhængigt af de andre programmoduler inden for hele applikationen. For at få software af den bedste kvalitet, bør 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, ikke-offentlige klasser og private metoder giver løs kobling, mens det gør alle medlemmer synlige i klassen og har pakken som standardsynlighed giver høj sammenhæng.

Anbefalede: