Sarebbe un uso efficace del modello soggetto / osservatore, o c'è un modo migliore?

4

TBH: Non ho mai usato un modello di osservatore. Ma sembra piuttosto utile per questa situazione:

Sto sviluppando un gioco di strategia molto semplice. Coinvolge due combattenti che si battono simultaneamente l'un l'altro per un breve periodo di tempo, il vincitore è il combattente con la maggior quantità di salute rimanente alla fine.

Ora ci sono molte strategie configurabili per i combattenti, diversi pezzi di equipaggiamento che possono cambiare ogni volta che attaccano, ecc. Sto anche pensando di includere alcuni fattori "esterni" come il tempo che influenzerà i combattenti.

Quindi ... Potrei creare un oggetto Fight che sia il soggetto. Tiene traccia del tempo e notifica agli osservatori ogni "tick" dell'orologio.

Gli osservatori sono due istanze di un oggetto Combatant e di un oggetto Weather.

Sembra una buona idea, ma dove sono le insidie? In realtà, mentre sto scrivendo questo penso che un problema è che gli osservatori sono probabilmente ignoranti dei rispettivi parametri. O devono essere?

Qualcuno ha usato un modello di progettazione efficace per fare qualcosa del genere?

    
posta Stephen 15.10.2010 - 23:44
fonte

1 risposta

4

Se le due istanze Combatant e Weather vengono notificate come risultato del conteggio dei tick clock aggiornati, e non per intervento diretto da parte dell'oggetto Fight, allora è il pattern Observer.

Se il tuo oggetto Lotta attiva direttamente le notifiche puoi usare il modello Comando per incapsulare i ricevitori o fare in modo che l'oggetto Lotta invii i messaggi direttamente agli oggetti Combatants e Meteo individualmente.

    
risposta data 16.10.2010 - 00:19
fonte

Leggi altre domande sui tag