Pensando a un gioco comune, non importa il tipo di gioco, è molto probabile che abbiamo bisogno di un tipo di fotocamera. Per esempio:
- Telecamera di debug: controllata da tastiera e mouse, con ciò siamo in grado di muoverci in qualsiasi luogo della nostra scena.
- Telecamera con script: con ciò possiamo istruire la telecamera a muoversi, seguendo un determinato percorso.
- Videocamera Player.
- ...
Ognuno di questi tipi di fotocamera ha la propria funzione di aggiornamento. Il sistema più semplice (e cattivo) è quello di avere una classe di gestore della videocamera con una funzione di aggiornamento generica e funzioni di aggiornamento specializzate per ogni tipo di videocamera. All'interno della funzione di aggiornamento generico è presente un'istruzione switch che, in base al tipo di telecamera, chiama la funzione di aggiornamento corretta.
Invece di questo ho pensato a un altro approccio: modello di strategia. Spostiamo il comportamento di ogni telecamera (metodo di aggiornamento) in una classe appropriata che implementa un'interfaccia comune. Nel gestore della fotocamera abbiamo un membro a quell'interfaccia e possiamo impostare dinamicamente qualsiasi comportamento desideriamo.
Cosa ne pensi di questo? Quali altri sistemi mi consigliate? Grazie.
Ulteriori informazioni: esiste la reale possibilità che sia necessaria più di una videocamera attiva, ad esempio per i riflessi. In breve, devo tenerne conto anche.