Menu
Coddy logo textTech

Récapitulatif - Système de Paiement

Fait partie de la section Programmation Orientée Objet du Journey Java de Coddy — leçon 40 sur 87.

challenge icon

Défi

Facile

Construisons un système de traitement de paiement complet qui rassemble tout ce que vous avez appris sur les interfaces dans ce chapitre. Vous allez créer un système flexible où différentes méthodes de paiement peuvent être traitées de manière uniforme via une interface commune.

Vous organiserez votre code sur cinq fichiers :

  • Payable.java : Définissez l'interface principale que toutes les méthodes de paiement doivent implémenter. Elle doit déclarer une seule méthode pay(double amount) qui retourne une String décrivant l'action de paiement.
  • CreditCard.java : Créez une classe implémentant Payable qui représente les paiements par carte de crédit. Une CreditCard possède un champ cardNumber (String) stockant les 4 derniers chiffres. Incluez un constructeur pour l'initialiser. La méthode pay doit retourner : "Paid %.2f using Credit Card ending in %s"
  • PayPal.java : Créez une autre classe implémentant Payable pour les paiements PayPal. Un compte PayPal possède un champ email (String). Incluez un constructeur pour l'initialiser. La méthode pay doit retourner : "Paid %.2f via PayPal account %s"
  • PaymentProcessor.java : Créez une classe de processeur capable de gérer n'importe quel objet Payable. Elle doit avoir une méthode processPayment(Payable paymentMethod, double amount) qui appelle la méthode pay de la méthode de paiement et retourne le résultat. Cela démontre comment les interfaces permettent un comportement polymorphe — le processeur n'a pas besoin de connaître le type de paiement spécifique !
  • Main.java : Rassemblez le tout. Vous recevrez trois entrées : un numéro de carte (4 derniers chiffres), une adresse e-mail et un montant de paiement. Créez un PaymentProcessor, puis utilisez-le pour traiter les paiements avec à la fois une CreditCard et un compte PayPal pour le montant donné. Affichez chaque résultat sur une ligne séparée.

Vous recevrez trois entrées : les 4 derniers chiffres du numéro de carte (String), l'e-mail PayPal (String) et le montant du paiement (double).

Formatez les montants avec deux décimales dans votre sortie. Remarquez comment le même PaymentProcessor gère des types de paiement complètement différents grâce à la puissance des interfaces !

Essayez vous-même

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Lire les entrées
        String cardNumber = scanner.nextLine();  // 4 derniers chiffres
        String email = scanner.nextLine();       // Email PayPal
        double amount = scanner.nextDouble();    // Montant du paiement
        
        // TODO: Créer un PaymentProcessor
        
        // TODO: Créer une CreditCard avec le cardNumber
        
        // TODO: Créer un compte PayPal avec l'email
        
        // TODO: Traiter le paiement avec CreditCard et afficher le résultat
        
        // TODO: Traiter le paiement avec PayPal et afficher le résultat
    }
}

Toutes les leçons de Programmation Orientée Objet