Open WagZol opened 5 years ago
Mi lenne ha kicsit szembe mennék azzal amit tegnap mondtam és mégis használnánk egy Design Pattern-t?
Vmi azt súgja hogy nem külön külön message-ek kellenénk külön class-okként hanem buildelni kéne őket, hiszen van amikor a táblát küldjük, a nextPath-t mindig. És ugye a Spring Bean-ekkel kommunikál, azaz ahogy mondtam DataClassokkal, és ott minden attribútum konstruktorban kerül átadásra és geterrel van kikérve. És ITT jönnek képbe a teleszkópos konstruktor=>Builder pattern Mit gondolsz?
Majd még agyalok, de én is feleslegesnek érzem, hogy ugyanazt elküldd többször. Bár akkor meg valami számlálót kell átküldeni azokban az üzenetekben, ahol a hajók listáját küldöd át. Plusz akkor is kell ez a számláló, mikor pl. elsüllyed egy hajó. Asszem a tábla mellett ezt a számlálót is minden körben el kell küldeni, de még fejben lecsupaszítom a dolgot, hogy valamilyen egységesen használható megoldás legyen.
A build alapjába véve jó ötletnek tűnik, bár nemtom mennyire lenne kihasználva. Ha az üzenetek részeit sűrűn kellene kombinálni egymással, akkor megérné, de nincs olyan sokféle response, hogy build-elni kelljen (szerintem). A build-nek akkor érzem előnyét, ha menet közben kell "egyedi recept" alapján összerakni valamit, de itt nem érzem szükségét.
Nem mindig kell minden, pl a cursor coordinátái, nem mindig kell a komplett tábla csak minden második response-ban.
Azért is írtam le hogy 3 féle response van amiben van közös és van nem közös vonás is. Mivel nálam Beanekkel van megoldva a message, ezért vagy builder-t használok vagy lesznek olyan tulajdonságok amik null-al kéne hogy visszaérjenek de a json formai leírsba olyasmit olvastam ma hogy null-t érdemes kerülni mert néha eltérhet a jelölés, illetve az csak string "null" (van ahol NULL, van ahol null stb stb)
Például a ships az általam vázolt felállásban a starter response-on kívül mindig null lesz, mert nem kell a későbbiekben csak 1 ship. plusz nem nagyon lehet bezsédes nevet adni neki, mivel egyszer hajótípusok, egyszer telepíteni kívánt hajók stb stb...
Ezek az indokaim a builder mellett. Persze ha van egy jobb konstrukciód a response-ok felépítésére hallgatom, csak annyit kérek hogy a hétvégén döntsd el, mert addig én sem bírok haladni a kóddal(nem akarlak sürgetni, nyugi)
Példa egy InitMessage-re amit a klines küld a szerver felé a játék indulásakor:
Magyarázat: De-Destroyer, Su-Submarine, Cr-Cruiser, Ca-Carrier
Kérdés: Érdemes minden hajót elküldenem amit telepíteni kell? Mármint 1 típusból többet is! mert ugye a táblán ezek a pontos jelölések lesznek, Max ha megadom Hogy pl Su és mi a smaple-je akkor tudnod kell hogy "Su*" -ot keress a Submarine-re.