Déportation de l'observable dans une sous-classe pour le déclenchement de la commande
All checks were successful
Gradle Test / test (push) Successful in 52s

This commit is contained in:
Feror 2025-01-30 11:48:30 +01:00
parent 446fbbf89b
commit d0a348f19f
2 changed files with 32 additions and 16 deletions

View file

@ -2,21 +2,14 @@ package org.example;
import java.util.ArrayList;
public class Cart implements Observable<String> {
public class Cart {
private String content;
private class OrderInitiationNotifier implements Observable<String> {
private ArrayList<Observer<String>> observers;
public Cart() {
public OrderInitiationNotifier() {
this.observers = new ArrayList<>();
this.content = "Contenu du panier";
}
public String getContent() {
return this.content;
}
public void initiateOrder() {
notifyObserver();
}
@Override
@ -30,9 +23,32 @@ public class Cart implements Observable<String> {
}
@Override
public void notifyObserver() {
public void notifyObserver(String content) {
for (Observer<String> obs : observers) {
obs.process(this.content);
obs.process(content);
}
}
}
public final OrderInitiationNotifier orderInitiationNotifier = new OrderInitiationNotifier();
public Cart() {
this.content = "Contenu du panier";
}
public String getContent() {
return this.content;
}
public void initiateOrder() {
orderInitiationNotifier.notifyObserver(this.content);
}
public void addObserver(Observer<String> obs) {
orderInitiationNotifier.addObserver(obs);
}
public void removeObserver(Observer<String> obs) {
orderInitiationNotifier.removeObserver(obs);
}
}

View file

@ -3,5 +3,5 @@ package org.example;
public interface Observable<T> {
public void addObserver(Observer<T> obs);
public void removeObserver(Observer<T> obs);
public void notifyObserver();
public void notifyObserver(T value);
}