Miksi ohjelmaa kannattaa jakaa eri luokkiin? Miksei riitä, että on vain yksi luokka, jossa on kaikki koodi?

Java on monen muun ohjelmointikielen tapaan puhtaasti olio-pohjainen. Mitä tarkoitetaan olio-pohjaisella? Ideana on jakaa ohjelma moneen osaan eli luokkaan ja muodostaa luokista ilmentymiä eli olioita. Miksi näin kannattaa tehdä vai kannattaako edes? Eikö yksi luokka riiittäisi hoitamaan kaiken tarpeellisen.

Luulisin, että yhdessä luokassa pystyy tekemään kaiken saman mitä monessa eri luokassa ja luultavasti ilman metodejakin pärjäisi pitkälle. Main-metodiin vaan kaikki koodi ja lopputulos saattaisi olla sama. Koodin jakamisessa moneen luokkaan on kyse ennemminkin selkeydestä. Varsinkin kun kyseessä on hiukan isompi ohjelma, on huomattavan fiksua pilkkoa se moneen osaan eli tavallaan jakaa iso ongelma moneksi pieneksi. Selkeämmän lopputuloksen lisäksi tälläinen ratkaisu tekee virheiden etsimisestä paljon helpompaa ja mahdollistaa ohjelman muokkaamisen jälkikäteen paremmalla menestyksellä. Esimerkiksi useat ohjelmointioppaat suosittelevat pitämään logiikan ja käyttöliittymän erillään toisistaan. Tämä juuri sen takia, että käyttöliittymän ulkoasua voi muokata mieleisekseen jälkikäteen, eikä tarvitse kajota logiikkaosioon.

Monen luokan käyttö on perusteltua lisäksi sen takia, että varsinkin isot ohjelmat eivät ole vain yhden ihmisen käsialaa ja niihin tullaan mahdollisesti jonkun muun toimesta todennäköisesti kajoamaan vielä tulevaisuudessa. On tärkeää, että ohjelma on selkeä ja sen rakenne helposti ymmärrettävissä. Henkilön, joka ei ole ennen kyseistä ohjelmaa nähnyt, on helpompaa päästä jyvälle, mikäli koodi on jaoteltu selkeisiin osa-alueisiin, luokkiin, joilla on yksi määrätty tehtävä. En voi kuvitellakaan millaisen sekamelskan saisi aikaan tekemällä ison ohjelman yhteen luokkaan.

Onko monen luokan käytössä haittapuolia? Itse en ainakaan tiedä, enkä nopealla googlaamisellakaan löytänyt mitään suurempia haittapuolia. Luulisin, että jotakin ohjelman hitauteen liittyviä ongelmia voi muodostua jos viittauksia eri luokkiin vilisee ristiin rastiin. Tiedä häntä. Itselläni haittapuolet esiintyivät lähinnä hermojen menemisenä luokkien välisten suhteiden kanssa, tämä luokka tuntee tuon luokan ilmentymän, tämä taas tuon, jne. Joskus tuntui, että olisi tosiaan ollut helpompi tehdä vain yksi iso luokka, niin ei olisi ollut ongelmia viittausten kanssa. Ongelmat kyllä ratkesivat aina lyhyen pohdinnan jälkeen ja tulos oli huomattavasti loogisempaa, kuin yksi iso luokka. Mielestäni monen luokan käyttö on erittäin perusteltua juurikin selkeyden takia.

-Olli

0 Responses to “Miksi ohjelmaa kannattaa jakaa eri luokkiin? Miksei riitä, että on vain yksi luokka, jossa on kaikki koodi?”



  1. Jätä kommentti

Vastaa

Please log in using one of these methods to post your comment:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s





%d bloggers like this: