PDA

View Full Version : Refactoring degli stati.


Ufo13
06-03-2008, 23:25
Sto cercando di spostare codice da Grid/GridController a GameTurn per arrivare a qualcosa come:

- Grid e` una classe semplice che gestisce i droppable e non conosce la logica di gioco.
- GameTurn gestisce la logica di un Turno di uno dei due giocatori.
- GridController diventa un oggetto semplice che connette l'input a GameTurn. GridController a quel punto diventerebbe piu` un PlayerPlug.

Purtroppo in questo refactoring mi ritrovo sempre tra i piedi lo state pattern che rende alcune modifiche veramente ostiche come la rimozione di scoreCalculator e stoneCalculator da Grid.

Sto pensando a cosa si puo` fare per eliminare lo state pattern corrente a favore di una soluzione piu` semplice.

Se avete idee per come organizzare gli stati postate pure altrimenti vado in solo :P

fek
07-03-2008, 00:10
Estra da Grid tutto cio' che rappresenta uno stato (ScoreCalculator, StoneCalculator, Gravita') e metti queste informazioni in una classe GridState.
GridController puo' essere una collezione di Grid e GridState. Gli stati ricevono GridController nell'Update e restituiscono il nuovo stato.

thebol
08-03-2008, 21:59
ho estratto quasi tutto il metodo PlayField.updateCrushBox() in crushBox. Tutti i test passano perņ il box esce dalla schermo troppo velocemente, ma tutti i test passano....

Per cui correggo il bug, faccio il test e poi posso committare.

Sempre che il refactoring sia gradito :)

fek
08-03-2008, 22:01
Graditissimo! :)
Puoi scrivere prima il test e poi correggere il bug?

Ufo13
10-03-2008, 00:20
Scusate la mancanza di checkin..

In codice lo sto cambiando ma sono veramente in difficolta` con gli stati (stanno in pessimo stato eheheh).