Hirdetés

Új hozzászólás Aktív témák

  • Lacces
    őstag

    Szerintem a probléma, amit leírsz, nem a creational design patternek témakörébe tartozik. Amit leírtál, mint absztrakt és konkrét osztályok nem factoryk és productok. Az a különbség, hogy ezek mind adatjellegű osztályok, nincs közöttük "ő hozza létre őt" logikai kapcsolat, ergo nem gyárak.

    Úgy hiszem, hogy a problémának két része van, ami megkavarhatott.

    1) A szakkör példányokat (a maguk hierarchiájában) el kell tárolnod a MongoDB-ben. Itt azért befigyel, hogy az SQL táblának semmi köze nincs a Mongo kollekciójához, sokkal könnyebb dolgod van. Szerintem egy szakkör példány = 1 dokumentum a Szakkörök kollekcióban, és olyan tulajdonságai vannak, ami az adott típushoz tartozik. Ne gondolkodj előre megkötött oszlopokkal rendelkező táblákban!

    2) Létre kell hoznod a különböző típusú szakköröket, figyelembe véve a különböző kombinációkat, mert ezzel más és más tulajdonságokat lehet beállítani. Itt jön be az, hogy szerintem a felvázolt osztályhierarchia nem stimmel.

    A legegyszerűbb felállás, hogy adott a szakkör ősosztály, amiben a közös mezők találhatóak (beleértve a szakkör nyelvét), és ennek leszármazottai a ConcreteFactory/AbstractProduct alatt felsoroltak (ahogy szükséges). És ilyen leszármazott osztályokat kell létrehoznod akkor, amikor a felhasználó felvesz egy új szakkört.

    Na most a megfelelő osztály kiválasztása és példányosítása már factory probléma. Az előző hierarchia mellett van egy szakkörgyár, ami valamilyen kulcs alapján létrehozza az új példányt. Ehhez a Factory method minta is elég. A gyár implementálásához meg szükséged van valami támpontra, hogy milyen szakköröket lehet létrehozni.

    Most ennyire van (nincs) időm, remélem volt valami értelme :P
    Kritika természetesen jöhet.

    UI: természetesen a hierarchia mind a modell rétegbe kell hogy kerüljön. A gyár határeset. De ez nem olyan kritikus kérdés szvsz.

    "Szerintem a probléma, amit leírsz, nem a creational design patternek témakörébe tartozik."
    Akkor hova tartozik/tartozhat még? :U :)
    Bónusz kérdés:
    Milyen más mintákat lehetne még alkalmazni? :)
    (Igazad van, NoSQL nem SQL, és így valamilyen szinten egyszerűbb dolgom is van.)

    Legegyszerűbb a hierarchia, de ha már hierarchiáról van szó, akkor mindig nézek úgymond egy tervezési mintát, hogy melyik húzható rá?! Valamilyen szinten különbözik egy közép- és felsőoktatási szakkör, na meg egy nyelvi szakkör is. Ha később az egyiket bővítem akkor jó, hogy így szét van szedve logikailag :).
    Például a felsőoktatási szakkör csak 1 féléves, a középiskolai 2 féléves(=1 éves), a nyelvi szakkörnél meg lehet "ideiglenes is", mint nyelvvizsga felkészítő. Későbbi módosításoknál.

    "A gyár implementálásához meg szükséged van valami támpontra, hogy milyen szakköröket lehet létrehozni." - Pontosan mit értesz támppont alatt? (Nekem ez így homályos)

    Amúgy köszönöm a segítséget :R . Még anno a Builder-en gondolkoztam...

    Mindenkinek:
    Mennyire hibás ötlet a következő?
    Lehetne ugye nyelvszakkört kilistázni, ekkor a gyár tudja, hogy nyelvszakkörök lesznek és már ekkor alapból nyelvszakkörös objektumokkal dolgozna? Adatbázisból lekérdezés és a view-ban megjelenítés lista nézetben. Ilyenkor érdemes-e egy újabb view-t létrehozni erre az osztályt típusra, vagy a régit is elég bővíteni(, amely alkalmazkodik a nyelvszakkör adataihoz)? (Gondolom a régit is lehet bővíteni egy bizonyos mértékig).

Új hozzászólás Aktív témák