Kytkentä vs. koheesio
Kytkentä ja koheesio ovat kaksi käsitettä, jotka löytyvät Java (ja kaikki muut olio kielet). Kytkentä mittaa, kuinka paljon kukin ohjelmamoduuleista on riippuvainen muista ohjelmamoduuleista. Koheesio mittaa kuinka vahvasti kukin funktio liittyy moduuliin. Itse asiassa millä tahansa objektiorientoidulla kielellä (mukaan lukien Java) on kaksi päätavoitetta: lisätä koheesiota ja vähentää kytkentää samanaikaisesti tehokkaimpien ohjelmien kehittämiseksi. Larry Constantine on kehittänyt nämä kaksi ohjelmistosuunnittelumittausta ohjelmistojen muokkaamisen ja ylläpidon kustannusten vähentämiseksi.
Mikä on koheesio??
Koheesio mitataan kuinka vahvasti kukin funktio liittyy ohjelman moduuliin. Hyvin jäsennellyt luokat johtavat erittäin yhtenäisiin ohjelmiin. Jos tietty luokka suorittaa joukon hyvin liittyviä toimintoja, luokan sanotaan olevan koheesio. Toisaalta, jos luokka suorittaa joukon täysin toisiinsa liittymättömiä toimintoja, se tarkoittaa, että luokka ei ole koheesio. On tärkeää ymmärtää, että koheesion puuttuminen ei tarkoita, että kokonaissovelluksella ei olisi vaadittavia toimintoja. Se on vain, että ilman yhteenkuuluvuutta, toiminnallisuuden hallitseminen on erittäin vaikeaa, koska ne ovat hajallaan moniin vääriin paikkoihin, koska sovelluksen monimutkaisuus kasvaa ajan myötä. Koodiin hajallaan olevien käyttäytymisten ylläpitäminen, muuttaminen ja laajentaminen on erittäin työlästä jopa kokeneimmille ohjelmoijille.
Mikä on kytkentä?
Kytkentä mittaa, kuinka paljon kukin ohjelmamoduuleista riippuu muista ohjelmoduuleista. Kahden objektin välinen vuorovaikutus tapahtuu, koska tapahtuu kytkentä. Löysästi kytketyt ohjelmat ovat joustavia ja laajennettavia. Vahva kytkentä ei ole koskaan hyvä, koska yksi esine voi olla erittäin riippuvainen toisesta esineestä. Tämä on painajainen, kun koodia muokataan, koska korkea kytkentä tarkoittaa, että ohjelmoijien on työskenneltävä useissa koodauspaikoissa jopa yhdestä käyttäytymismuutoksesta. Vahva kytkentä johtaa aina ohjelmiin, joissa on vähäinen joustavuus ja vähemmän skaalautuvuus / laajennettavuus. Ohjelmointikielissä, kuten Java, kytkemisen täydellinen välttäminen on kuitenkin mahdotonta. Mutta on suositeltavaa, että ohjelmoijat pyrkivät kaikin tavoin vähentämään kytkentää niin paljon kuin mahdollista. On myös mahdollista saada kytkentä, joka auttaa esineitä vuorovaikutuksessa keskenään estämättä niiden skaalautuvuutta ja joustavuutta.
Mitä eroa kytkennän ja koheesion välillä on??
Vaikka kytkentä ja koheesio käsittelevät moduulin laatua ohjelmistosuunnittelussa, ne ovat täysin erilaisia käsitteitä. Koheesio puhuu siitä, kuinka paljon toiminnallisuudet liittyvät toisiinsa moduulin sisällä, kun taas kytkentä käsittelee kuinka paljon yksi moduuli on riippuvainen muista ohjelmoduuleista koko sovelluksen sisällä. Parasta laatua olevien ohjelmistojen saamiseksi koheesion ja kytkemisen tulisi saavuttaa spektrinsä kaksi vastakkaista päätä. Toisin sanoen löysä kytkentä ja vahva koheesio tarjoaa parhaan ohjelmiston. Koska yksityiset kentät, ei-julkiset luokat ja yksityiset menetelmät tarjoavat löysän kytkennän, samalla kun kaikki jäsenet näkyvät luokassa ja paketti on oletusnäkyvyys, ne tarjoavat korkean koheesion.