From 1a2bbda35415aad409f0520098fdf3fcb301cca4 Mon Sep 17 00:00:00 2001 From: Veritorakka <eemeli302@gmail.com> Date: Wed, 3 May 2023 22:23:29 +0300 Subject: [PATCH] =?UTF-8?q?Tein=20teht=C3=A4v=C3=A4n=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exercise2/Tehtava2ohjelmalogiikka.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) 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 fd10d37..752b9eb 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 -- GitLab