| | |
| Stránka: 1 z 1
| [ Príspevkov: 2 ] | |
Autor | Správa |
---|
Registrovaný: 14.04.09 Prihlásený: 18.01.22 Príspevky: 1188 Témy: 198 |
Ahojte,
mozno trochu zvlastna otazka, ale chcel by som zistit ci urcita logika ma nejaky nazov, ci je to nejaky bezny pattern.
Povedzme ze mam implementaciu triedy, ktora sa moze nachadzat v roznych stavoch. Cize state machine. Napriklad povedzme ze mam objekt GameEngine ktory ma atribut GameState. GameEngine sluzi na nacitanie objektu Game, ktory GameEngine prijme cez konstruktor. GameState moze byt enum ktory ma moznosti Loading, Running, Error, Terminated. Akonahle vytvorim GameEngine, zacina v stave Loading, potom moze switchovat medzi Loading/Running/Error, ale akonahle dosiahne Terminated, uz je objekt nepouzitelny, nemozem sa vratit naspat do ineho stavu, a mal by byt vymazany z pamate. Cize inymi slovami, objekt GameEngine je len na "jedno pouzitie", nemozem pomocou rovnakeho GameEngine objektu nacitat novy objekt Game. Cize "zivotny cyklus" objektu GameEngine je len "jednosmerny" a nie cyklicky.
Moja otazka znie, ci v tom vidite nejaky pattern alebo nazov pre taketo pouzitie objektu GameEngine, ktory ak je raz Terminated, nezacina nikdy oznova a mal by byt vymazany pomocou garbage collectora. Ci je to nejaky paradigm, alebo som si to len ja vymyslel teraz.
_________________ CPU: Intel core i5 3470 GPU: Gigabyte N760OC-2GD MB: MSI B75A-G43 RAM: DDRAM3 8GB (2x4GB) TEAM RAM 1600MHz Elite Zdroj: Seasonic G Series 450W HDD: 500GB vybraty z notebooku Lenovo E531 i5-3230M N4IBPXS SSD:Samsung 840 Evo 250GB Case: Fractal Define R4 black pearl FAN: Cooler Master Hyper 212+ EVO DVD: SAMSUNG DVD±R/±RW/RAM SH-224DB SATA, černá, bulk OS: Ubuntu 12.04 64bit & Windows 7 Ultimate 64bit Monitor: Dell U2412m |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 18.12.2018 19:01 | |
|
Urob GameState ako singleton https://cs.wikipedia.org/wiki/Singletons tým, že verejné rozhranie bude prepínať stavy a obsahovať tú tvoju logiku. Vieš tam dať napr podmienku, že ak je už v stave terminated, nedá sa s objektom ďalej nič robiť.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
| Stránka: 1 z 1
| [ Príspevkov: 2 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|