Troverete che generalmente non possiamo aspettarci di usare i costrutti di C ++ o di altre lingue per modellare direttamente il nostro dominio / gioco. Ad esempio, le lingue offrono ereditarietà e amici, ma è improbabile che queste si traducano nelle funzionalità di modellazione necessarie per qualsiasi dominio / gioco specifico. I costrutti del linguaggio, come insieme, sono progettati per la modellazione dell'implementazione / codice / astrazioni per un dominio, piuttosto che per modellare direttamente il dominio stesso.
Al contrario, utilizziamo i costrutti offerti dalla lingua per creare astrazioni mediante la codifica (ad esempio, creando classi e istanze di esse) e quelle astrazioni rappresentano & eseguire i concetti di dominio / gioco, forse come quelli che coinvolgono giocatori, livelli, accesso e rifiuto.
Ad esempio, ad un certo punto, potresti voler chiedere se un giocatore ha accesso a un oggetto - puoi creare astrazioni che consentono di proporre e rispondere a domande come questa, magari sotto forma di un metodo che restituisce un valore di approvazione o disapprovazione di accesso.
Le entità e la loro configurazione formano la base del tuo modello di dominio . Il modello di dominio definisce entità di informazioni, le loro interconnessioni e aggiunge a ciò la capacità di porre domande e ottenere risposte o realizzare altri comportamenti. Lo stesso modello di dominio può essere creato utilizzando astrazioni praticamente in qualsiasi lingua, nonostante le grandi differenze nei loro costrutti di base.
Quindi, è un processo indiretto. Utilizziamo i costrutti del linguaggio per creare entità di dominio, relazioni e comportamenti che ci offrono query e comandi relativi al dominio / gioco e ai suoi concetti e relazioni.