Atelier final : le panier, résumé et checklist SOLID
Les 5 principes appliqués ensemble à un service de panier e-commerce, avec corrigé, résumé d'une page, checklist de revue de code et quiz final.
Réservé aux abonnés
Objectif de la leçon
Appliquer les 5 principes ensemble sur un service de panier réel, puis repartir avec un résumé d'une page, une checklist de revue de code et un quiz final.
L'atelier : le PanierService « tout-en-un »
Durée : 60 minutes, idéalement en binôme. Voici le code de départ :
public class PanierService {
public double calculerTotal(Panier panier, String codePromo, String modeLivraison,
String emailClient) {
// Promo
double total = panier.totalHT();
if (codePromo != null) {
if (codePromo.startsWith("PCT")) {
total = total * 0.90;
} else if (codePromo.startsWith("FIX")) {
total = Math.max(0, total - 10);
}
}
// Livraison
double frais;
if (modeLivraison.equals("COLISSIMO")) {
frais = total >= 50 ? 0 : 4.90;
} else if (modeLivraison.equals("CHRONOPOST")) {
frais = 9.90;
} else {
frais = 0;
}
// TVA
double totalTTC = total * 1.20 + frais;
// Sauvegarde du panier
new RedisClient("localhost", 6379).set("panier:" + emailClient, panier);
// Suivi marketing
new GoogleAnalyticsClient().track("panier_calcule", totalTTC);
return totalTTC;
}
}
Consignes
- S : listez toutes les raisons de changer de cette classe.
- O : rendez possible l'ajout du point relais et du code promo « livraison offerte » sans modifier le code existant.
- L / I : un produit numérique ne doit jamais entrer dans le calcul des frais de port. Quelles interfaces créez-vous ?
- D : rendez
PanierServicetestable sans Redis ni Google Analytics. - Écrivez un test : panier de 60 € HT, code promo 10 %, Colissimo → total TTC attendu 64,80 € (54 € HT après promo, livraison offerte dès 50 €, TVA 20 %).
La suite de cette leçon est réservée aux abonnés
Les 3 premières leçons de chaque formation sont gratuites. Débloquez la suite pour continuer.
Déjà abonné ? Se connecter
