Exemple complet

Dans cette partie, nous allons créer un service permettant de gérer une machine à café qui s’inspire de l’exercice disponible sur le site https://simcap.github.io/coffeemachine. Le code est disponible dans les paquets services et modeles.

1. Définition du service

Le service propose plusieurs méthodes pour gérer la machine :

  • total pour récupérer le montant total d’argent récupéré.

  • acheterProduit pour acheter un produit.

  • produitsRestants pour récupérer les produits de type code restants.

  • ajouterProduit pour ajouter des produits de type code.

  • supprimerProduit pour supprimer les produits de type code.

2. Modèles

Un produit est défini par le trait Produit et chaque type de produit est défini par un case object. Il possède les attributs suivants : Trait

  • Un prix.

  • Un code.

  • Une quantité initiale.

On surcharge la méthode toString pour plus de praticité.

trait Produit { 
 override final def toString: String = code 
 def prix: Double 
 def code: String 
 def quantiteInitiale: Int 
} 

Le trait est étendu par trois traits scellés : Trait:scellé

  • Bouteille

  • Canette

  • Friandise

a. Friandise

Le trait scellé Friandise propose un prix et une quantité initiale par défaut.

sealed trait Friandise extends Produit {  Héritage:extends
 override val prix: Double = 1.0 
 override val quantiteInitiale:...
couv_EPSCALA.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Implicites
Suivant
Définition