Exercices Architecture & Patterns Objet composite : Commande e-commerce
🎉

Bravo!

Avancé 🧠 Fondamentaux 30 XP 0 personnes ont réussi

Objet composite : Commande e-commerce

Modelisons quelque chose de concret : une commande e-commerce. C'est un excellent exemple de composition car les lignes de commande n'ont aucun sens en dehors d'une commande.

Le principe : la commande est responsable de créer ses propres lignes. On ne lui passe pas des objets LigneCommande deja créés, on lui donne les informations et elle crée la ligne elle-meme.

Chaque ligne de commande sait calculer son propre total. La commande delegue a chaque ligne et fait la somme. C'est le principe de responsabilite unique : chaque objet gere son propre calcul.

Implemente :
- LigneCommande(produit, quantite, prix_unitaire) avec total() retournant quantite * prix_unitaire
- Commande(numéro) avec :
- ajouter_ligne(produit, quantite, prix) : crée et ajoute une LigneCommande
- total() : somme des totaux de toutes les lignes
- nb_articles() : somme des quantites
- lignes (property) : liste des lignes

Exemple :
c = Commande('CMD-001')
c.ajouter_ligne('Livre', 2, 15.0)
c.ajouter_ligne('Stylo', 5, 2.0)
c.total() # 40.0
c.nb_articles() # 7

Tests (3/4)

Total ligne
l = LigneCommande('Livre', 2, 15.0)
assert l.total() == 30.0
Total commande
c = Commande('CMD-001')
c.ajouter_ligne('Livre', 2, 15.0)
c.ajouter_ligne('Stylo', 5, 2.0)
assert c.total() == 40.0
Nb articles
c = Commande('CMD-002')
c.ajouter_ligne('A', 3, 1.0)
c.ajouter_ligne('B', 2, 1.0)
assert c.nb_articles() == 5

+ 0 tests cachés

Indices (3 disponibles)

solution.py