Le cours de Conception de Projet :

Approche Objet - Master 1 Informatique

TD - Domain-Driven-Design

Ce TD reprend le code du TD précédent et a pour objectif de construire la couche application et la couche UI.

Consignes

Toutes les modifications apportées au code doivent être compilées.

Le service dans la couche application

Créer un package application au même niveau que le package domain. Dans ce package :
  • Créer une classe PanierService afin de mettre en oeuvre un service de votre application pour gérer les commandes.
  • Vous distinguerez dans cette classe les parties query soit les read dans le repository, des parties comand soit les write dans le repository.
Pour se faire vous pouvez créer des Worker qui vont récupérer les commandes:
  • Construire une classe abstraite Command qui propose une méthode abstraite execute.
  • Construire la classe concrète CommandAddProduct qui implément la méthode execute en ajoutant un produit au panier.
  • Construire la classe Worker ( avec un thread) qui réalisera l'éxecution des commandes (via command.excute), cette classe devra avoir une méthode de thread (run) dont le but est d'aller récupérer une commande dans la liste et de l'exécuter.
  • Construire la classe BagOfCommands qui permet d'ajouter des commandes (pushCommand()) et de retirer des commandes (getCommand()).

La couche interface utilisateur

  • Construire une classe qui sera le modèle de votre UI.
  • Cette classe devra contenir tous les éléments de votre interface graphique ou de votre interface alpha/numérique si vous n'avez pas le temps de faire une interface graphique.
  • Vous pouvez si besoin conserver dans cette classe des informations qui vous permet de communiquer avec la couche application : référence d'un panier, contexte de l'utilisateur ...