public class ShoppingCart { private double totalAmount; private PaymentStrategy strategy; public ShoppingCart(double amount) { this.totalAmount = amount; } // Επιτρέπει την αλλαγή στρατηγικής κατά το runtime (Dependency Injection) public void setPaymentStrategy(PaymentStrategy strategy) { this.strategy = strategy; } public void checkout() { if (strategy == null) { System.out.println("[ERROR]: No payment method specified!"); } else { strategy.pay(totalAmount); } } }