Razlika između spajanja i kohezije

Razlika između spajanja i kohezije
Razlika između spajanja i kohezije

Video: Razlika između spajanja i kohezije

Video: Razlika između spajanja i kohezije
Video: Razlika između mentorstva i koučinga 2024, Studeni
Anonim

Spajanje vs kohezija

Spajanje i kohezija su dva koncepta koja se nalaze u Javi (i svim drugim objektno orijentiranim jezicima). Spajanje mjeri koliko je svaki od programskih modula ovisan o drugim programskim modulima. Kohezija mjeri koliko je svaka od funkcija povezana unutar modula. Zapravo, svaki objektno orijentirani jezik (uključujući Javu) ima dva glavna cilja povećanja kohezivnosti i smanjenja spregnutosti u isto vrijeme, kako bi se razvili najučinkovitiji programi. Ove dvije metrike softverskog inženjeringa razvio je Larry Constantine kako bi smanjio troškove modificiranja i održavanja softvera.

Što je kohezija?

Kohezija mjeri koliko je svaka od funkcija povezana unutar programskog modula. Dobro strukturirana nastava vodi do visoko kohezivnih programa. Ako određena klasa obavlja skup visoko povezanih funkcija, za tu se klasu kaže da je kohezivna. S druge strane, ako klasa izvodi hrpu potpuno nepovezanih funkcija, to znači da klasa uopće nije kohezivna. Važno je razumjeti da nepostojanje kohezivnosti ne znači da cjelokupna aplikacija nema potrebnu funkcionalnost. Samo što će bez kohezije biti vrlo teško upravljati funkcionalnošću jer će biti raštrkane na mnogo pogrešnih mjesta kako se složenost aplikacije s vremenom povećava. Održavanje, modificiranje i proširenje ponašanja razbacanih po cijelom kodu vrlo je zamorno čak i za najiskusnije programere.

Što je spajanje?

Spajanje mjeri koliko je svaki od programskih modula ovisan o drugim programskim modulima. Interakcije između dvaju objekata nastaju jer postoji sprega. Loosely-coupled programi su visoke fleksibilnosti i proširivosti. Jaka sprega nikada nije dobra jer jedan objekt može biti jako ovisan o nekom drugom objektu. Ovo je noćna mora kada se kod modificira, jer visoka povezanost znači da programeri moraju raditi na nekoliko mjesta koda čak i za jednu modifikaciju ponašanja. Jaka sprega uvijek dovodi do programa niske fleksibilnosti i manje skalabilnosti/proširljivosti. Međutim, u programskim jezicima poput Jave nemoguće je potpuno izbjeći spajanje. Ali preporuča se da programeri daju sve od sebe kako bi smanjili spoj što je više moguće. Također je moguće imati neko spajanje koje pomaže objektima u međusobnoj interakciji bez ometanja njihove skalabilnosti i fleksibilnosti.

Koja je razlika između spajanja i kohezije?

Iako se spajanje i kohezija bave kvalitetom modula u softverskom inženjerstvu, oni su potpuno različiti koncepti. Kohezija govori o tome koliko su funkcionalnosti povezane jedna s drugom unutar modula, dok se spajanje bavi time koliko je jedan modul ovisan o drugim programskim modulima unutar cijele aplikacije. Kako bismo imali najkvalitetniji softver, kohezija i sprega trebaju doseći dva suprotna kraja svojih spektra. Drugim riječima, labava veza i jaka kohezija osiguravaju najbolji softver. Imati privatna polja, nejavne klase i privatne metode omogućuju labavu povezanost, dok čine sve članove vidljivima unutar klase i imaju paket kao zadanu vidljivost daju visoku koheziju.

Preporučeni: