Kezdőoldal » Számítástechnika » Programozás » Hogy lenne szép ennek a...

Hogy lenne szép ennek a feladatnak a megoldása C#-al?

Figyelt kérdés

Van egy feladat, ahol bizonyos inputokra bizonyos dolgoknak kell történnie.


Elég egyszerű maga a feladat, viszont nehéz szépen megoldani, mert bizonyos input után nem jöhet más input. Meg van olyan input, ahol minimum X inputnak K fajtából meg kell történnie, hogy jöhessen egy másik.


-Nyílván ezeket egyesével számolgatni valami lokális változóval és azok nullázásával megoldható, de nagyon ronda és nem bővíthető könnyen.


-Enumokkal nagyon szépen lehet követni egy állapotgépet egyszerűen, az állapot váltások meg bemenet változásoknál történnének, de itt meg azt nem lehet követni, hogy egy-egy azonos fajtából mennyi volt, vagyis lehet, csak nagyon ronda megvalósítással.


-Egy másik megoldás, ha a beolvasott kéréseket eltárolom egy listában és azokat visszanézve mindig eldöntöm.

Itt konkrét objektumokat tárolni, azaz csinálok egy ős osztály és abból számaztatom le a különféle kéréseket, de igazából csak az az információ kell, hogy milyen típusúak, így szükségtelen. Meg redundáns a kérdésben és a kérés alapján létrehozott objektumban tárolni az adatot 1-1 listában egymás mellett.

Vagy akár lehet szintén enumokat tárolni, ami hely takarékos, de elég furcsa megközelítés.


Ezeken kívül nem jut eszembe más, de itt is mindenhol type checket kell csinálni, amit ugye nem szeret a OOP, legalábbis BME-n még így tanították nekem.


Hogy lehet ezt a legszebben megoldani?


Tudom egyszerű, triviálisank tűnik. Lazán össze lehet csapni 5 perc alatt, de melyik a legszebb megoldás, ami OOP-t, SOLID-ot meg minden mást követ?



2023. jan. 2. 21:21
 1/4 anonim ***** válasza:
80%
Állapotgép, vagyis leánykori nevén Final State Machine.
2023. jan. 2. 22:40
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:
10%
Úgy.
2023. jan. 2. 22:46
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:
67%
Mondjuk le is írhatnád a konkrét feladatot szó szerint...
2023. jan. 3. 05:27
Hasznos számodra ez a válasz?
 4/4 anonim ***** válasza:
Most azon túl, hogy az első válaszban leírták hogyan lehet megtervezni egy ilyen működést, amit ki tudtam silabizálni ebből a zavaros leírásból az az, hogy te egészen konkrétan egy regulárisan leírható inputsorozatot akarsz elkapni. Arra van beépített megoldás, bár le kell tudni írni reguláris kifejezéssel. Itt pedig visszakanyarodtunk az első válaszhoz. Ha nem tudod leírni, akkor készíthetsz állapotgépet.
2023. jan. 6. 03:28
Hasznos számodra ez a válasz?

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!