Melyik módszert érdemes használni?
Egy nagyobb projektbe kezdenék most, C#-ban és érdekelne hogy a kettő közül melyiket érdemes használni, valamint a későbbiekben (esetleg munkában) melyiket fogják előnyben részesíteni?
Alap szituáció hogy például sok munkát szeretnék eltárolni.
1: Csinálok egy IMunka interfészt, és minden munkának külön osztályt hozok létre, ami ezt implementálja, majd egy IMunka tömbben/listában tudom tárolni ezeket.
2: Csinálok egy Munka osztályt, amiben minden megvan amit az előző példában az IMunka tartalmazott (de itt nincs interfész), és abból hozok létre példányokat különböző munkáknak megfelelő adatokkal a konstruktorban.
Melyik módszer "eladhatóbb"? A második módszer (amit suliban tanítanak) a továbbfejleszthetőség miatt nehezebben átlátható, míg minden munka külön osztályban tárolva áttekinthetőbb, vagy rosszul gondolom? Esetleg van valami más erre? Még csak tanulom a nyelvet, de a későbbiekben szeretnék ezzel foglalkozni és azért érdekel, hogy melyik módszert érdemes megtanulni.
Nem feltétlenül baj.
Ha van ahol azonos a fizetés, lehet még tovább kategorizálni.
Nem teljesen világos nekem, hogy mit szeretnél implementálni.
A különböző munkák ugyanolyan objektumok? Azaz ugyanazok a tulajdonságaik és műveleteik vannak és a műveleteiket ugyanúgy számolod? Ha igen, akkor egy osztály különböző példányairól van szó. Ez azért jó, mert később akárhány munkát létrehozhatsz egyszerűen. Ha viszont nem teljesen egyformák, hanem van köztük különbség, plusz tulajdonság/művelet, máshogy van implementálva ugyanaz a művelet ilyesmi, akkor jöhet képbe a származtatás. De nem kell azt sem túlzásba vinni, mert túlbonyolítja a kódot, akkor használd csak amikor tényleg kell.
Lehet, hogy érthetetlenül írtam le, elnézést, pontosítok:
Szeretném, ha a programban lennének különböző munkák. Ezeknek vannak adott tulajdonságai, például az értük járó bér, a munka nehézsége, a munkavégző neme is lehet feltétel, és egy Do() metódus, ami elvégzi az adott munkát (referenciaként megkapva a munkavégzőt, hogy növelje a fizetését de nem lényeges ez). Most ezt úgy oldjam meg, hogy egy Munka osztályt hozok létre, amiben az említett tulajdonságokat konstruktorban állítom be, vagy mindegyik munka egy IMunka interfésztől örököljön, amik majd implementálják ezeket a tulajdonságokat saját módjuk szerint?
Így remélem tisztább, szóval ha ezt szeretném megvalósítani, akkor maradjak a konstruktoros átadogatós módszernél, vagy egyszerűbb, ha minden munkának külön osztályt hozok létre, amik implementálják az IMunka interfészt? És akkor ha módosítani kell mondjuk az Utcaseprés munka fizetésén akkor csak rábökök az osztályra és átírom, az egyszerűbb, mint kikeresni egy listából ahol mondjuk tárolva vannak a Munka objektum példányai, vagy nem?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!