diff --git a/src/main/java/fi/utu/tech/ooj/exercise2/Tehtava2ohjelmalogiikka.java b/src/main/java/fi/utu/tech/ooj/exercise2/Tehtava2ohjelmalogiikka.java index fd10d37d4f3415ea2010d08bef5bef2cc3b73c55..752b9ebca8602765d19f8442f40e2c0ab767e3e6 100644 --- a/src/main/java/fi/utu/tech/ooj/exercise2/Tehtava2ohjelmalogiikka.java +++ b/src/main/java/fi/utu/tech/ooj/exercise2/Tehtava2ohjelmalogiikka.java @@ -21,3 +21,40 @@ public class Tehtava2ohjelmalogiikka { */ } } + +/* + * Luokkarakenne voi olla esimerkiksi seuraavanlainen: + + Paketti: linnustotutkimus + + Tehtava2ohjelmalogiikka (abstrakti luokka) + Tehtava2Tallennuspalvelu (abstrakti luokka) + Tehtava2TiedostoTallennuspalvelu (konkreettinen toteutus Tehtava2Tallennuspalvelu-luokasta) + Tehtava2TietokantaTallennuspalvelu (konkreettinen toteutus Tehtava2Tallennuspalvelu-luokasta) + Tehtava2Tietokanta1 (konkreettinen toteutus Tehtava2Tallennuspalvelu-luokasta) + Tehtava2LinnustoTieto (abstrakti luokka) + Tehtava2LinnustoTietoCSV (konkreettinen toteutus Tehtava2LinnustoTieto-luokasta) + Tehtava2LinnustoTietoTietokanta (konkreettinen toteutus Tehtava2LinnustoTieto-luokasta) + + Paketti: linnustotutkimus.tiedosto + + Tehtava2TiedostoPalvelu (abstrakti luokka) + Tehtava2TiedostoPalveluCSV (konkreettinen toteutus Tehtava2TiedostoPalvelu-luokasta) + + Paketti: linnustotutkimus.tietokanta + + Tehtava2Tietokanta (abstrakti luokka) + Tehtava2Tietokanta1 (konkreettinen toteutus Tehtava2Tietokanta-luokasta) + + + Perustelut: + Tässä ratkaisussa abstrahoidaan tallennuspalvelu ja linnustotietojen tallennus omiin abstrakteihin luokkiinsa. + Tämä mahdollistaa erilaisten tallennuspalveluiden helpon käytön ilman että ohjelmalogiikan toteutuksen täytyy riippua tietyn konkreettisen tallennuspalvelun toteutuksesta. + Lisäksi tiedostotallennuspalvelu on eriytetty omaksi pakkauksekseen, joka mahdollistaa sen käytön erillisessä moduulissa. + Samoin tietokantatallennuspalvelu on eriytetty omaksi pakkauksekseen, joka mahdollistaa erilaisten tietokantatallennuspalveluiden helpon käytön samalla logiikalla. + Polymorfismia hyödynnetään käyttämällä abstrakteja luokkia tallennuspalvelulle ja linnustotiedolle. + Tämä mahdollistaa erilaisten toteutusten helpon käytön ja lisää joustavuutta ohjelman kehityksessä. + Polymorfismia hyödynnetään käyttämällä abstrakteja luokkia tallennuspalvelulle ja linnustotiedolle. Tämä mahdollistaa erilaisten toteutusten helpon käytön ja lisää joustavuutta ohjelman kehityksessä. + + + */ \ No newline at end of file