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