Trois opérations système:
démarrerJeu(nom:String)
jouer(nom:String)
terminerJeu()
Tous les arguments sont de type primitif!
démarrerJeu(nom:String)
dans JeuDeDés
(un contrôleur GRASP).JeuDeDés
est l’objet racine du MDD./* démarrer le jeu (express route handler) */
public demarrerJeu(req: Request, res: Response, next: NextFunction) {
const nom = req.body.nom;
try {
// Invoquer l'opération système (du DSS) dans le contrôleur GRASP
const joueur = this._controleurJeu.demarrerJeu(nom);
const joueurObj = JSON.parse(joueur);
req.flash('info', `Nouveau jeu pour ${nom}`);
// ...
}
}
JeuRouteur.ts
a une méthode route handler qui invoque l’opération système
Elle décortique l’argument req
d’un service web pour extraire les arguments de l’opération système
Appel de l’opération système démarrerJeu(nom)
, l’argument nom
est de type primitif string
L’objet de retour est une copie de l’objet Joueur (du domaine), pour respecter la séparation des couches.
Voir tout le code de JeuRouteur.ts
sur GitHub.
Pour chaque opération système du DSS, il doit y avoir:
Notez que le Contrôleur GRASP n’est pas dans la couche de présentation
⚠️ Vous instanciez un objet (new Devoir(...)
) dans un routeur pour le passer dans une opération système.
Correctif:
⚠️ Vous avez une méthode route handler (avec arguments de requête et réponse HTTP) dans une classe Université
.
Université
).Correctif:
JeuRouteur.ts
.Certaines technologies 🤠 peuvent être incompatibles avec cette méthodologie de séparation. C’est la raison que nous ne permettons pas l’utilisation d’autres cadriciels pour le laboratoire.
Vous devez respecter la contrainte de la séparation des couches.