Sukabinimas vs sanglauda
Sujungimas ir suderinamumas yra dvi „Java“ (ir visų kitų objektų kalbų) sąvokos. Sujungimas matuoja, kiek kiekvienas programos modulis priklauso nuo kitų programos modulių. Sanglauda matuoja, kaip stipriai kiekviena funkcija yra susijusi viename modulyje. Tiesą sakant, bet kuri į objektą orientuota kalba (įskaitant „Java“) turi du pagrindinius tikslus - padidinti suderinamumą ir sumažinti susiejimą tuo pačiu metu, 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 sąnaudas.
Kas yra sanglauda?
Sanglauda matuoja, kaip stipriai kiekviena funkcija yra susijusi programos modulyje. Gerai struktūruotos klasės veda prie labai darnių programų. Jei tam tikra klasė vykdo 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 nesuderinamumas nereiškia, kad bendroji programa neturi reikiamų funkcijų. Tiesiog nesuderinus funkcijų, bus labai sunku valdyti funkcijas, nes jos bus išsklaidytos daugelyje netinkamų vietų, nes laikui bėgant programos sudėtingumas didėja. Išsaugoti, modifikuoti ir pratęsti elgesį, išsibarsčiusį po visą kodą, yra labai nuobodus net ir labiausiai patyrusiems programuotojams..
Kas yra sukabinimas?
Sujungimas matuoja, kiek kiekvienas programos modulis priklauso nuo kitų programos modulių. Dviejų objektų sąveika atsiranda dėl to, kad yra sujungimas. Lėtai susietos programos yra labai lanksčios ir išplėstos. Tvirtas sujungimas niekada nėra geras, nes vienas objektas gali būti labai priklausomas nuo kito objekto. Tai košmaras, kai modifikuojamas kodas, nes didelis susiejimas reiškia, kad programuotojams reikia dirbti keliose kodo vietose, kad būtų galima pakeisti net vieną elgesio modelį. Stiprus sujungimas visada lemia mažo lankstumo ir mažesnio mastelio / išplėtimo programas. Tačiau tokiose programavimo kalbose kaip „Java“ visiškai išvengti sujungimo 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 tarpusavyje netrukdant jo masteliams ir lankstumui.
Kuo skiriasi sujungimas ir sanglauda?
Nors susiejimas ir suderinimas lemia programinės įrangos inžinerijos modulio kokybę, jie yra visiškai skirtingos sąvokos. Sanglauda pasakoja apie tai, kiek modulio funkcijos yra susijusios viena su kita, o sujungimas parodo, kiek vienas modulis priklauso nuo kitų programos modulių visoje programoje. Norint turėti geriausios kokybės programinę įrangą, suderinamumas ir sujungimas turėtų pasiekti du priešingus jų spektrų galus. Kitaip tariant, laisvas sujungimas ir tvirta sanglauda suteikia geriausią programinę įrangą. Turėdami privačius laukus, neviešos klasės ir privatūs metodai užtikrina laisvą sujungimą, o visi nariai tampa matomi klasės viduje ir paketas yra numatytasis matomumas..