Durante lo sviluppo di modelli di dominio, posso vedere due modi principali di pensare all'utente:
-
Il primo presuppone che un programma sia una sorta di "simulazione" di ciò che accade nel mondo reale e l'utente è uno spettatore. Con questo approccio avresti una classe di clienti, ad esempio, con forse metodi che corrispondono alle azioni che un cliente può eseguire. Ogni volta che il cliente vuole fare qualcosa, viene chiamato il metodo corrispondente.
-
L'altro approccio sarebbe quello di progettare le classi come se fossero esposte all'utente e lui / lei ha quindi la possibilità di creare e giocare con gli oggetti "direttamente", pensando al programma come a una sorta di estensione della realtà dell'utente. Con questo approccio, una classe di clienti non avrebbe probabilmente alcun senso in quanto il cliente è già "coinvolto".
Ho letto alcuni articoli che parlano di aggiunta di sicurezza a livello di metodo, che sembra essere coerente con il secondo approccio, ma credo che il primo approccio sia molto più popolare.
Qual è il modo migliore per affrontare questo?
Grazie.