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 complet de traitement des paiements qui rassemble tout ce que vous avez appris sur les interfaces dans ce chapitre. Vous allez créer un système flexible dans lequel différentes méthodes de paiement peuvent être traitées uniformément באמצעות une interface commune.

Vous allez organiser 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 renvoie un 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. Un CreditCard possède un champ cardNumber (String) contenant les 4 derniers chiffres. Ajoutez un constructeur pour l'initialiser. La méthode pay doit renvoyer : Paid [amount] using Credit Card ending in [cardNumber]
  • PayPal.java : créez une autre classe implémentant Payable pour les paiements PayPal. Un compte PayPal possède un champ email (String). Ajoutez un constructeur pour l'initialiser. La méthode pay doit renvoyer : Paid [amount] via PayPal account [email]
  • PaymentProcessor.java : créez une classe de traitement capable de gérer n'importe quel objet Payable. Elle doit posséder une méthode processPayment(Payable paymentMethod, double amount) qui appelle la méthode pay de la méthode de paiement et renvoie le résultat. Cela 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 tous les éléments. Vous recevrez trois entrées : un numéro de carte (les 4 derniers chiffres), une adresse e-mail et un montant de paiement. Créez un PaymentProcessor, puis utilisez-le pour traiter des paiements avec un CreditCard et un compte PayPal pour le montant indiqué. Affichez chaque résultat sur une ligne distincte.

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 un 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

Entraînez-vous par vous-même : Compilateur Java en ligne