Susijungimas prieš sanglaudą
Sujungimas ir sanglauda yra dvi „Java“(ir visose kitose objektinėse kalbose) aptinkamos sąvokos. Sujungimas matuoja, kiek kiekvienas programos modulis yra priklausomas nuo kitų programos modulių. Sanglauda matuoja, kaip stipriai kiekviena modulio funkcija yra susijusi. Tiesą sakant, bet kuri į objektą orientuota kalba (įskaitant „Java“) turi du pagrindinius tikslus – didinti darną ir tuo pačiu metu sumažinti ryšį, kad būtų sukurtos efektyviausios programos. Šias dvi programinės įrangos inžinerijos metrikas sukūrė Larry Constantine, siekdamas sumažinti programinės įrangos modifikavimo ir priežiūros išlaidas.
Kas yra sanglauda?
Sanglauda matuoja, kaip stipriai kiekviena iš funkcijų yra susijusi programos modulyje. Geros struktūros pamokos veda į labai darnias programas. Jei tam tikra klasė atlieka labai susijusių funkcijų rinkinį, sakoma, kad ta klasė yra darni. Kita vertus, jei klasė atlieka daugybę visiškai nesusijusių funkcijų, tai reiškia, kad klasė nėra darni. Svarbu suprasti, kad darnos nebuvimas nereiškia, kad visa programa neturi reikiamų funkcijų. Tiesiog be darnos bus labai sunku valdyti funkcionalumą, nes laikui bėgant jie bus išsklaidyti daugelyje netinkamų vietų. Palaikyti, keisti ir išplėsti elgseną, išsklaidytą visame kode, yra labai varginantis net labiausiai patyrusiems programuotojams.
Kas yra sujungimas?
Sujungimas matuoja, kiek kiekvienas programos modulis yra priklausomas nuo kitų programos modulių. Sąveika tarp dviejų objektų atsiranda, nes yra ryšys. Laisvai susietos programos pasižymi dideliu lankstumu ir išplečiamumu. Stiprus sujungimas niekada nėra geras, nes vienas objektas gali būti labai priklausomas nuo kito objekto. Tai yra košmaras, kai kodas yra modifikuojamas, nes aukštas sujungimas reiškia, kad programuotojams reikia dirbti keliose kodo vietose, kad būtų galima pakeisti net vieną elgesį. Tvirtas sujungimas visada veda į programas, kurių lankstumas yra mažas ir yra mažesnis mastelio / išplėtimo. Tačiau tokiomis programavimo kalbomis kaip Java visiškai išvengti susiejimo neįmanoma. Tačiau rekomenduojama, kad programuotojai dėtų visas pastangas, kad kuo labiau sumažintų sujungimą. Taip pat galima turėti tam tikrą jungtį, kuri padėtų objektams sąveikauti vienas su kitu, netrukdant jų mastelio keitimui ir lankstumui.
Kuo skiriasi sukabinimas ir sanglauda?
Nors sujungimas ir sanglauda yra susiję su programinės įrangos inžinerijos modulio kokybe, tai yra visiškai skirtingos sąvokos. Sanglauda kalba apie tai, kiek funkcijos yra susijusios viena su kita modulyje, o sujungimas – tai, kiek vienas modulis yra priklausomas nuo kitų programos modulių visoje programoje. Norint turėti geriausios kokybės programinę įrangą, sanglauda ir sujungimas turėtų pasiekti du priešingus spektro galus. Kitaip tariant, laisva jungtis ir stipri sanglauda suteikia geriausią programinę įrangą. Privatūs laukai, neviešos klasės ir privatūs metodai užtikrina laisvą susiejimą, o visi nariai matomi klasėje, o paketas yra numatytasis matomumas užtikrina didelę darną.