Résumé « cas pratique »
Système de Gestion Bancaire complet
Mise en pratique
Ch4. Programmation Orienté Objets (POO)
Résumé « cas pratique »
Diagramme conceptuel du système
numero doit être de cette forme : « COMP-0001,
COMP-0002, …. »
Architecture du Système
Le système utilise l'héritage pour partager le comportement commun, l'encapsulation pour protéger
les données.
14.04.26 160
Ch4. Programmation Orienté Objets (POO)
Résumé « cas pratique »
Implémentation – pratie I
▪ CompteBancaire : C'est la classe de base dont héritent les deux sous-classes.
✓ nombreComptes : Attribut de classe, Partagé par toutes les instances (s'incrémente à chaque
création d'objet)
✓ Le constructeur :
✓ Initialise le titulaire et le solde (par défaut à 0)
✓ Génère automatiquement le numéro de compte au format COMP-0001 grâce à :
✓ Initialise l'historique comme une liste vide []
✓ Incrémente le compteur de classe : [Link] += 1
14.04.26 161
Ch4. Programmation Orienté Objets (POO)
Résumé « cas pratique »
Implémentation – pratie I
Les attributs sont privés (préfixés __) et exposés
via des @prperty, le principe d'encapsulation
Propriété Getter Setter
Titulaire Oui Non(lecture seule)
solde Oui Oui (@[Link])
numero Oui Oui (@[Link])
historique Oui (retourne Non
une copie)
Le retour d'une copie de l'historique est
important (cela empêche toute modification
externe directe de la liste interne).
14.04.26 162
Ch4. Programmation Orienté Objets (POO)
Résumé « cas pratique »
Implémentation – pratie I
✓ Vérifie que le montant est positif, sinon lève une ValueError
✓ Ajoute le montant au solde
✓ Enregistre la transaction dans l'historique sous forme de
dictionnaire avec : type, montant, description, solde_apres
✓ Retourne le solde mis à jour
Presque le même traitement que déposer
✓ Vérifie que le montant est positif (sinon ValueError)
✓ Vérifie que le solde est suffisant (sinon ValueError :
"Solde insuffisant")
✓ Déduit le montant du solde
✓ Enregistre la transaction dans l'historique
✓ Retourne le solde mis à jour
14.04.26 163
Ch4. Programmation Orienté Objets (POO)
Résumé « cas pratique »
Implémentation – pratie I
Cette méthode va parcourir sur l’ensemble des éléments de la liste historique puis
✓ Affiche toutes les transactions enregistrées pour un compte
✓ Sous Format :
« type » : « montant » MAD – « description »
« solde actuel en fin » MAD
Retourne une représentation en chaîne lisible de chaque instance de
la classe CompteBancaire:
Ex: CompteBancaire N°: COMP-0001 | Titulaire : Yahya | Solde : 1500.00 MAD
Une méthode de classe, Permet d'interroger le nombre total de
comptes créés sans avoir besoin d'une instance
14.04.26 164
Ch4. Programmation Orienté Objets (POO)
Résumé « cas pratique »
Implémentation – pratie II
CompteCourant hérite de la classe CompteBancaire et redéfinir
(surcharge) la méthode retirer() pour autoriser le découvert.
Le Constructeur
✓ Appelle le constructeur parent via super()
✓ et Ajoute l'attribut __decouvert (privé) avec
une valeur par défaut 500 MAD
La méthode retirer (la logique est modifiée par rapport à la classe parente)
✓ Vérifie que le montant est positif, calcule le solde disponible réel = solde + découvert
✓ Si le montant dépasse ce plafond lève une erreur avec un message indiquant le découvert autorisé
✓ Sinon, délègue au parent via super().retirer() pour garder la logique commune (historique)
14.04.26 165
Ch4. Programmation Orienté Objets (POO)
Résumé « cas pratique »
Implémentation – pratie II
CompteEpargne hérite de la classe CompteBancaire et ajoute la
notion de taux d'intérêt (attribut taux + méthode calculer_interets)
Le Constructeur
✓ Appelle le constructeur parent via super()
✓ et Ajoute l'attribut __taux (privé) avec une
valeur par défaut 2% (0.02)
La méthode calculer_interets
✓ Calcule les intérêts : interets = [Link] * self.__taux
✓ Appelle « [Link](interets, "Intérêts annuels") » réutilise la méthode héritée pour créditer et
enregistrer dans l'historique automatiquement
✓ Retourne le montant des intérêts calculés
14.04.26 166