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