Ho lavorato a un gioco nel mio tempo libero. Ho praticamente finito di definire i primitivi e fino ad oggi tutto era abbastanza ben segmentato e incapsulato, ma ora è giunto il momento di implementare la ricerca dei percorsi (e altri modi in cui gli oggetti interagiscono tra loro). Qui la ricerca del percorso richiede almeno una conoscenza della mappa, una conoscenza di dove le unità sono nella mappa e quali tipi di terreno sono percorribili dall'unità il cui percorso è stato trovato.
Ci sono tre modi in cui ho pensato di implementare questo
- Implementalo in alcune classi di alto livello che conoscono già tutte queste cose (ad esempio un oggetto di stato del gioco)
- Implementalo in qualche metodo specifico all'interno di una delle classi "coinvolte" (come unità o mappa) e passa in tutti gli stati pertinenti
- Implementalo in una funzione completamente separata (perché nessuno stato deve essere mantenuto) e passa di nuovo in tutti i dati rilevanti
Voglio avere la tua opinione su quale di questi ha senso (o se ce ne sono altri a cui non ho pensato). Il primo mi piace di più perché accoppia solo gli oggetti ad un livello elevato e non richiede di esporre gli oggetti per dichiarare che non hanno (altrimenti) bisogno di sapere. Non mi piace il numero 2 perché non fa quelle cose e il numero 3 su questo punto sono neutrale; non sembra necessariamente migliore o peggiore del numero 1.
Se il numero 2 è in realtà il vincitore, ho delle preoccupazioni su quanta complessità verrà propagata a questa classe di gioco di alto livello.