diff --git a/panier/src/main/java/org/example/Cart.java b/panier/src/main/java/org/example/Cart.java index 79d715d..0aff0fb 100644 --- a/panier/src/main/java/org/example/Cart.java +++ b/panier/src/main/java/org/example/Cart.java @@ -2,12 +2,37 @@ package org.example; import java.util.ArrayList; -public class Cart implements Observable { +public class Cart { private String content; - private ArrayList> observers; + + private class OrderInitiationNotifier implements Observable { + private ArrayList> observers; + + public OrderInitiationNotifier() { + this.observers = new ArrayList<>(); + } + + @Override + public void addObserver(Observer obs) { + observers.add(obs); + } + + @Override + public void removeObserver(Observer obs) { + observers.remove(obs); + } + + @Override + public void notifyObserver(String content) { + for (Observer obs : observers) { + obs.process(content); + } + } + } + + public final OrderInitiationNotifier orderInitiationNotifier = new OrderInitiationNotifier(); public Cart() { - this.observers = new ArrayList<>(); this.content = "Contenu du panier"; } @@ -16,23 +41,14 @@ public class Cart implements Observable { } public void initiateOrder() { - notifyObserver(); + orderInitiationNotifier.notifyObserver(this.content); } - @Override public void addObserver(Observer obs) { - observers.add(obs); + orderInitiationNotifier.addObserver(obs); } - @Override public void removeObserver(Observer obs) { - observers.remove(obs); - } - - @Override - public void notifyObserver() { - for (Observer obs : observers) { - obs.process(this.content); - } + orderInitiationNotifier.removeObserver(obs); } } diff --git a/panier/src/main/java/org/example/Observable.java b/panier/src/main/java/org/example/Observable.java index 577275e..220c725 100644 --- a/panier/src/main/java/org/example/Observable.java +++ b/panier/src/main/java/org/example/Observable.java @@ -3,5 +3,5 @@ package org.example; public interface Observable { public void addObserver(Observer obs); public void removeObserver(Observer obs); - public void notifyObserver(); + public void notifyObserver(T value); }