Suunnittelumallit ohjelmoinnissa
Knaapi, Esa (2013)
Knaapi, Esa
Kymenlaakson ammattikorkeakoulu
2013
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201304295500
https://urn.fi/URN:NBN:fi:amk-201304295500
Tiivistelmä
Ohjelmoinnissa eräs suurimpia haasteita on ohjelmarakenteiden suunnittelu ja raken-taminen. Tämä huomattiin jo vuonna 1977, jolloin Christopher Alexander vertasi oh-jelmien rakentamista talojen rakentamiseen ja totesi, että rakentaminen yleisesti pe-rustuu toimivien ratkaisumallien keräämiseen, oppimiseen ja käyttämiseen. Ohjel-moinnin suunnittelumallit tulivat kuitenkin paremmin esiin vasta vuonna 1994, kun Erich Gamma julkaisi kirjansa suunnittelumalleista. Elämme nyt vuotta 2013, mutta kuinka moni ohjelmoija hallitsee tai tuntee suunnittelumallit? Ei kovinkaan moni ja se näkyy koodissa huonoina rakenteina ja tarpeettoman monimutkaisina ratkaisuina.
Tämä opinnäytetyö sisältää kaikki samat suunnittelumallit, mitä Erich Gamman kir¬jassa esiintyi. Näitä malleja on yhteensä 23 ja ne ovat: abstrakti tehdas, rakentaja, teh-dasmetodi, prototyyppi, ainokainen, adapteri, silta, kooste, kuorruttaja, julkisivu, hiu-tale, edustaja, yleisfunktio, tulkki, tarkkailija, vastuuketju, välittäjä, iteraatio, ko¬mento, muisto, strategia, tila ja vierailija. Malleja on myöhemmin tullut lisääkin, mutta opinnäytetyössä vedettiin raja siihen, että käsitellään vain alkuperäiset suunnittelu-mallit. Opinnäytetyössä mainitaan lyhyesti myös antisuunnittelumallit ja annetaan niistä muutama esimerkki. Tämän jälkeen esitellään suunnittelumallit. Suunnittelu-mallin kohdalla kerrotaan lyhyesti, mitä sen on tarkoitettu tekevän, miten se rakentuu, ja jokainen sisältää myös yksinkertainen C#:lla tehdyn koodiesimerkin.
Suunnittelumallien esittelyn jälkeen niitä sovelletaan opinnäytetyön tekijän pelin uudelleenrakentamiseen. Alun perin peli muistutti ra¬kenteellisesti lähinnä isoa klönttiä ja monet koodiratkaisuista oli toteutettu typerästi. Uudelleenrakentamisen jälkeen koodirivimäärä väheni yli 40 % ja ennen kaikkea se oli rakenteellisesti huomattavasti elegantimmin toteutettu.
Tämä opinnäytetyö sisältää kaikki samat suunnittelumallit, mitä Erich Gamman kir¬jassa esiintyi. Näitä malleja on yhteensä 23 ja ne ovat: abstrakti tehdas, rakentaja, teh-dasmetodi, prototyyppi, ainokainen, adapteri, silta, kooste, kuorruttaja, julkisivu, hiu-tale, edustaja, yleisfunktio, tulkki, tarkkailija, vastuuketju, välittäjä, iteraatio, ko¬mento, muisto, strategia, tila ja vierailija. Malleja on myöhemmin tullut lisääkin, mutta opinnäytetyössä vedettiin raja siihen, että käsitellään vain alkuperäiset suunnittelu-mallit. Opinnäytetyössä mainitaan lyhyesti myös antisuunnittelumallit ja annetaan niistä muutama esimerkki. Tämän jälkeen esitellään suunnittelumallit. Suunnittelu-mallin kohdalla kerrotaan lyhyesti, mitä sen on tarkoitettu tekevän, miten se rakentuu, ja jokainen sisältää myös yksinkertainen C#:lla tehdyn koodiesimerkin.
Suunnittelumallien esittelyn jälkeen niitä sovelletaan opinnäytetyön tekijän pelin uudelleenrakentamiseen. Alun perin peli muistutti ra¬kenteellisesti lähinnä isoa klönttiä ja monet koodiratkaisuista oli toteutettu typerästi. Uudelleenrakentamisen jälkeen koodirivimäärä väheni yli 40 % ja ennen kaikkea se oli rakenteellisesti huomattavasti elegantimmin toteutettu.