Atšķirība starp savienošanu un kohēziju

Atšķirība starp savienošanu un kohēziju
Atšķirība starp savienošanu un kohēziju

Video: Atšķirība starp savienošanu un kohēziju

Video: Atšķirība starp savienošanu un kohēziju
Video: Sessions & Cookies 2024, Jūlijs
Anonim

Savienojums pret kohēziju

Savienojums un kohēzija ir divi Java (un visās citās objektorientētās valodās) sastopami jēdzieni. Savienojums mēra, cik lielā mērā katrs programmas modulis ir atkarīgs no citiem programmas moduļiem. Kohēzija mēra, cik cieši katra no funkcijām ir saistītas modulī. Faktiski jebkurai objektorientētai valodai (ieskaitot Java) ir divi galvenie mērķi - palielināt kohēziju un vienlaikus samazināt savienojumu, lai izstrādātu visefektīvākās programmas. Šos divus programmatūras inženierijas rādītājus izstrādāja Lerijs Konstantīns, lai samazinātu programmatūras modificēšanas un uzturēšanas izmaksas.

Kas ir kohēzija?

Kohēzija mēra, cik cieši katra no funkcijām ir saistītas programmas modulī. Labi strukturētas nodarbības rada ļoti saskaņotas programmas. Ja noteikta klase veic ļoti saistītu funkciju kopumu, tiek uzskatīts, ka šī klase ir vienota. No otras puses, ja klase veic virkni pilnīgi nesaistītu funkciju, tas nozīmē, ka klase vispār nav vienota. Ir svarīgi saprast, ka kohēzijas trūkums nenozīmē, ka vispārējai lietojumprogrammai nav nepieciešamās funkcionalitātes. Vienkārši bez kohēzijas būs ļoti grūti pārvaldīt funkcionalitāti, jo tās tiks izkaisītas daudzās nepareizās vietās, jo laika gaitā lietojumprogrammas sarežģītība palielinās. Uzturēt, modificēt un paplašināt visā kodā izkaisītās darbības ir ļoti nogurdinoša pat vispieredzējušākajiem programmētājiem.

Kas ir savienošana?

Savienojums mēra, cik lielā mērā katrs programmas modulis ir atkarīgs no citiem programmas moduļiem. Mijiedarbība starp diviem objektiem notiek tāpēc, ka pastāv savienojums. Brīvi savienotas programmas ir ļoti elastīgas un paplašināmas. Spēcīga sakabe nekad nav laba, jo viens objekts var būt ļoti atkarīgs no cita objekta. Tas ir murgs, kad kods tiek modificēts, jo augsta sasaiste nozīmē, ka programmētājiem ir jāstrādā pie vairākām koda vietām, lai veiktu pat vienu uzvedības modifikāciju. Spēcīga savienošana vienmēr noved pie programmām ar zemu elastību un mazāku mērogojamību/paplašināmību. Tomēr programmēšanas valodās, piemēram, Java, nav iespējams pilnībā izvairīties no savienošanas. Bet ir ieteicams, lai programmētāji pieliktu visas pūles, lai pēc iespējas samazinātu savienojumu. Ir iespējams arī izveidot savienojumu, lai palīdzētu objektiem savstarpēji mijiedarboties, netraucējot to mērogojamību un elastību.

Kāda ir atšķirība starp savienošanu un kohēziju?

Lai gan sakabe un kohēzija attiecas uz programmatūras inženierijas moduļa kvalitāti, tie ir pilnīgi atšķirīgi jēdzieni. Kohēzija runā par to, cik daudz funkcionalitātes ir saistītas viena ar otru modulī, savukārt savienojums attiecas uz to, cik lielā mērā viens modulis ir atkarīgs no citiem programmas moduļiem visā lietojumprogrammā. Lai iegūtu vislabākās kvalitātes programmatūru, kohēzijai un savienojumam ir jāsasniedz divi pretējie spektra gali. Citiem vārdiem sakot, vaļīgs savienojums un spēcīga kohēzija nodrošina vislabāko programmatūru. Privāti lauki, nepubliskas nodarbības un privātās metodes nodrošina brīvu savienojumu, vienlaikus padarot visus dalībniekus redzamus klasē, un paketes kā noklusējuma redzamību nodrošina augstu kohēziju.

Ieteicams: