Système de Gestion de Comptes Bancaires
Hiérarchie d’héritage pour différents types de comptes bancaires avec gestion de clients
classDiagram
class Account {
<<abstract>>
-int id
#float balance
-int$ accountCount
+Account(float balance)
+deposit(float amount) void
+withdraw(float amount)* void
+getBalance() float
}
class SimpleAccount {
-float overdraft
+SimpleAccount(float balance, float overdraft)
+withdraw(float amount) void
}
class WithdrawalException {
<<exception>>
+WithdrawalException(String message)
}
class SavingsAccount {
-float interestRate
+SavingsAccount(float rate, float balance)
+calculateInterest() void
}
class Client {
-int id
-int$ clientCount
-String firstName
-String lastName
-List~Account~ accounts
+Client(String firstName, String lastName)
+calculateTotalAssets() float
+add(Account account) void
}
class FeeAccount {
-float fee
+FeeAccount(float balance, float fee)
+deposit(float amount) void
+withdraw(float amount) void
}
class OverdraftException {
<<exception>>
+OverdraftException(String message)
}
SimpleAccount --|> Account
SavingsAccount --|> Account
FeeAccount --|> Account
Client "1" --> "0..*" Account
Account (Classe de Base Abstraite)
Section intitulée « Account (Classe de Base Abstraite) »La classe parente pour tous les types de comptes bancaires.
- id: Identifiant unique du compte (privé)
- balance: Solde actuel du compte (protégé - accessible aux sous-classes)
- accountCount: Compteur statique pour le total de comptes créés (privé)
- Account(float balance): Constructeur pour initialiser le compte avec un solde de départ
- deposit(float amount): Ajouter de l’argent au compte
- withdraw(float amount): Retirer de l’argent du compte (lève WithdrawalException si fonds insuffisants)
- Le solde protégé permet aux sous-classes d’accéder et de modifier le solde
SimpleAccount
Section intitulée « SimpleAccount »Compte courant standard avec protection contre le découvert.
- overdraft: Limite maximale de découvert autorisée (privé)
- SimpleAccount(balance, float overdraft): Constructeur avec solde initial et limite de découvert
- Hérite de Account
- Surcharge withdraw(): Permet le retrait jusqu’à solde + limite de découvert
- Lève OverdraftException si le retrait dépasse les fonds disponibles + découvert
SavingsAccount
Section intitulée « SavingsAccount »Compte d’épargne portant intérêts.
- interestRate: Taux d’intérêt annuel en pourcentage (privé)
- SavingsAccount(float rate, float balance): Constructeur avec taux d’intérêt et solde initial
- Hérite de Account
- calculateInterest(): Calcule et ajoute les intérêts au solde basé sur interestRate
- Typiquement avec des restrictions sur les retraits (non montré dans le modèle de base)
FeeAccount
Section intitulée « FeeAccount »Compte qui facture des frais pour les transactions.
- FeeAccount(balance): Constructeur avec solde initial
- Hérite de Account
- Surcharge deposit(): Facture des frais modiques pour chaque transaction de dépôt
- Surcharge withdraw(): Facture des frais modiques pour chaque transaction de retrait
- Utile pour les comptes premium avec services additionnels
Client bancaire pouvant posséder plusieurs comptes.
- id: Identifiant unique du client (privé)
- clientCount: Compteur statique pour le total de clients créés (privé, partagé entre toutes les instances)
- firstName: Prénom du client (privé)
- lastName: Nom de famille du client (privé)
- accounts: Liste des comptes détenus par ce client (
List<Account>privée) - Client(String firstName, String lastName): Constructeur qui auto-incrémente clientCount
- calculateTotalAssets(): Somme des soldes de tous les comptes du client
- add(Account account): Associer un nouveau compte à ce client
- Un client peut avoir zéro ou plusieurs comptes (relation un-à-plusieurs)
WithdrawalException
Section intitulée « WithdrawalException »Exception levée lorsqu’un retrait échoue.
- Levée lors d’une tentative de retrait supérieure au solde disponible
- Utilisée par la classe Account de base
OverdraftException
Section intitulée « OverdraftException »Exception levée lorsque la limite de découvert est dépassée.
- Levée par SimpleAccount lorsque le retrait dépasse solde + découvert
- Exception spécialisée pour les scénarios de découvert

