C#-ban miért előnyös külön osztályt készíteni a listáknak? (OOP)
Figyelt kérdés
2022. szept. 28. 16:10
3/7 anonim 



válasza:





Listának is szoktak wrapper osztály készíteni vagy pedig az adott implementációtól örökölnek és azt még egyedibben implementálják, hogy jobban absztraktálják a működést vagy egy nagyon egyedi feladathoz kényelmes adatstruktúrát hozzanak létre.
Pl.: javában a Stack igazából (ha jól emlkészem, rég néztem rá) egy linked list, ami köré csináltak egy osztályt, hogy stackesebb legyen.
Ilyenekre gondoltál?
4/7 anonim 



válasza:





Az OOP elvei szerint mindenre előnyös egy külön osztályt készíteni, ami egy bizonyos aspektusból önálló entitásként értelmezhető. Az más kérdés, hogy technikailag mindent lehet-e, ha ez az irány érdekel, akkor a Domain Driven Development világába kell belemásznod.
5/7 anonim 



válasza:





Ennek a kérdésnek az égvilágon semmi értelme.
6/7 anonim 



válasza:





Én például azért tenném, hogy külön válasszam az osztályokat, ahol önmagát a példány viselkedését definiálnám, de mindegyikről gyűjtemény kell, ahhoz viszont akkor létrehozok egy közös nagy osztályt, ami mondjuk egy konténer osztály, és oda belepakolom inicializáláskor az összes listát üresen, majd a többi külön osztályból a megfelelő metódus paramétereként átadom ezt a konténer osztályt, mint referenciát (már ha jól mondom), és ezen keresztül mindig ahhoz a listához nyúlok, amire szükségem van. Igen, ez kvázi a "public static" kiváltása, csak itt nem lesz semmi statikus. Ebben a konténer osztályban tudsz aztán külön függvényeket is írni, amik helyben is tudják kezelni a listákat, ha szükséges, vagyis ha olyan műveletekre van szükség, amit célszerűbb ott helyben megoldani, és nem külön osztályokból hivatkozni. Bár akkor nevezhetnénk már valamilyen manager osztálynak is. A lényeg, hogy én biztosan ezért csinálnám. Nem tudom, nem -e véletlenül az ilyen osztályokat nevezik God osztályoknak, ami túl sok mindent is tartalmaz, és nagyon rá lehet függni, mert egyszerű az osztályok közötti kapcsolat vele.
7/7 EgyGabor 



válasza:





Szerintem csak akkor érdemes ha extra funkció/védelem is kell.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!