Come progettare un'applicazione console con una buona separazione dell'interfaccia utente da Logic

2
  1. È considerato eccessivo il fatto che l'applicazione della console sia progettata come architettura MVC, MVP o N tier? Se no, che è più comune e se è possibile collegarmi a un semplice esempio di esso.

  2. Voglio implementare un gioco di tris in modalità console.
    Ho una soluzione che contiene due progetti: TicTacToeBusinessLogic (Class library project) e TicTacToeConsoleApplication (Console application project) per rappresentare la logica della vista. Nella classe TicTacToeConsoleApplication ho Program.cs che contiene il punto di ingresso principale ( public static void Main ).
    Ora devo affrontare un problema.
    Voglio che il gioco gestisca il proprio flusso di gioco, così posso: Crea una nuova classe GameManager ( from BL ) ma ciò fa sì che la vista conosca direttamente la parte BL .

Quindi sono un po 'confuso su come scriverlo in modo accettabile. Dovrei usare i delegati? Per favore mostrami un semplice esempio.

    
posta JavaSa 31.05.2014 - 11:07
fonte

2 risposte

2

Avrei almeno qualcosa con cui hai uno strato che ascolta gli eventi della tastiera, ecc. e li traduce in chiamate nel livello della logica di gioco e viene aggiornato (Observer) mentre quelle chiamate cambiano lo stato del gioco.

Fai qualche passo avanti e indovina cosa, sei tornato in MVC o MVP o MVVM territorio.

Se seguire o meno uno di questi pattern non ha nulla a che fare con il tipo di interfaccia utente e tutto ciò che ha a che fare con la separazione delle preoccupazioni, l'accoppiamento lento e la manutenibilità.

    
risposta data 31.05.2014 - 11:44
fonte
1

La scelta di utilizzare MVC o simili dipende dalla mia opinione sulla dimensione della tua applicazione e non sul tipo di interfaccia utente.

Più grande è la complessità e la dimensione, più si vuole lavorare in modo strutturato, utilizzando un modello di progettazione. Ovviamente, il metodo usato non dovrebbe dare più spese generali che benefici. Ma tieni presente che il codice tende a crescere in dimensioni e complessità molto velocemente.

    
risposta data 01.06.2014 - 23:15
fonte

Leggi altre domande sui tag