Keresés

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

  • fordfairlane

    veterán

    válasz Lacces #6971 üzenetére

    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á?!

    Ha ennyire nincs benne gyakorlatod, akkor inkább ne nézd.

  • Karma

    félisten

    válasz Lacces #6971 üzenetére

    Őszintén? Sehova. Esetleg a Fowler-féle enterprise minták valamelyikébe, azokat nem tudom fejből.

    Az előző hozzászólásomból kiemelném ismét, hogy a felsorolt osztályok egyike sem gyár. Sőt, az eddigiek alapján sok viselkedés nem is tartozik hozzájuk, csak adat, aminek adsz egy szerkezetet (magadnak meg fejfájást).

    Apropó Builder, annak is megvan a maga helye, de nem ez. Célszerű elolvasni a minta által megoldott problémát (mindig ott van a definíció környékén), hangsúly most a bonyolult objektum többlépéses inicializációján. Példának meg javaslom a GsonBuilder osztályt a GSON libraryben, látványos.

    Minta tekintetében továbbra is Factory Methodra szavazok (az Abstract változatára nincs szükség, mivel maga a factory csak egyféleképpen létezik), de ha extrémebbre veszed a figurát, használd a Prototype-ot.

    Az említett támpont például egy enum vagy egy string, ami egyértelműen azonosít egy szakköraltípust, és ez alapján hozd létre a példányt/keresd elő a másolandó prototípust. Igen, mindkét esetben (ezekkel a mintákkal) kőbe kell vésned a támogatott típusokat, vagy extra köröket futnod egy reflexiós, classloaderes vagy komponensalapú dinamikus körítéssel.

    Vagy.

    Fogd meg teljesen más oldalról a problémát már a modell szintjén!

    Igazából logika szempontjából két szakköraltípus között semmi különbség nincs, csak mások a tulajdonságai. Megfoghatod meta irányból a problémát: egy szakkör osztály, a közös fix jellemzők tagváltozók, valamint egy Map, amiben az extra tulajdonságokat tárolod. Ha saját osztályt készítesz ezeknek a propertyknek, akkor a "szükséges eszközök listája" jellegű dolgokat például a Composite mintával tudod megoldani. Jé, minta.

    A különböző szakkörtípusok sémává válnak, ami leírja a propertyket. A sémákat külön tudod tárolni, újakat létrehozni, stb. a Java kódhoz nyúlás nélkül. A séma alapján legyártani az objektumot nem nagy kaland, prototípus és factory minta szerint se.

    Ez a metamegközelítés egyébként megjelenítésnél is hasznos, hiszen nem tart semmiből végigiterálni a szakkör propertyjein ;)

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

Hirdetés