Utilisation du design pattern observer
This commit is contained in:
parent
b64917bb5a
commit
0deca9eda5
6 changed files with 45 additions and 16 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
package org.example;
|
package org.example;
|
||||||
|
|
||||||
public class Accounting {
|
public class Accounting implements Observer<String> {
|
||||||
private String accounting;
|
private String accounting;
|
||||||
|
|
||||||
public Accounting(String pAccounting) {
|
public Accounting(String pAccounting) {
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
package org.example;
|
package org.example;
|
||||||
|
|
||||||
public class Cart {
|
import java.util.ArrayList;
|
||||||
private StockManagement stock;
|
|
||||||
private Accounting accounting;
|
|
||||||
private String content;
|
|
||||||
|
|
||||||
public Cart(StockManagement pStock, Accounting pAccounting) {
|
public class Cart implements Observable<String> {
|
||||||
this.stock = pStock;
|
private String content;
|
||||||
this.accounting = pAccounting;
|
private ArrayList<Observer<String>> observers;
|
||||||
this.content = new String ("Contenu du panier");
|
|
||||||
|
public Cart() {
|
||||||
|
this.observers = new ArrayList<>();
|
||||||
|
this.content = "Contenu du panier";
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getContent() {
|
public String getContent() {
|
||||||
|
|
@ -16,7 +16,23 @@ public class Cart {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initiateOrder() {
|
public void initiateOrder() {
|
||||||
this.stock.process(this.content);
|
notifyObserver();
|
||||||
this.accounting.process(this.content);
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addObserver(Observer<String> obs) {
|
||||||
|
observers.add(obs);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeObserver(Observer<String> obs) {
|
||||||
|
observers.remove(obs);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void notifyObserver() {
|
||||||
|
for (Observer<String> obs : observers) {
|
||||||
|
obs.process(this.content);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
7
panier/src/main/java/org/example/Observable.java
Normal file
7
panier/src/main/java/org/example/Observable.java
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
package org.example;
|
||||||
|
|
||||||
|
public interface Observable<T> {
|
||||||
|
public void addObserver(Observer<T> obs);
|
||||||
|
public void removeObserver(Observer<T> obs);
|
||||||
|
public void notifyObserver();
|
||||||
|
}
|
||||||
5
panier/src/main/java/org/example/Observer.java
Normal file
5
panier/src/main/java/org/example/Observer.java
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
package org.example;
|
||||||
|
|
||||||
|
public interface Observer<T> {
|
||||||
|
public void process(T contenu);
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package org.example;
|
package org.example;
|
||||||
|
|
||||||
public class StockManagement {
|
public class StockManagement implements Observer<String> {
|
||||||
private String stockManagement;
|
private String stockManagement;
|
||||||
|
|
||||||
public StockManagement(String pStockManagement) {
|
public StockManagement(String pStockManagement) {
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,7 @@ import static org.junit.jupiter.api.Assertions.*;
|
||||||
class CartTest {
|
class CartTest {
|
||||||
@Test
|
@Test
|
||||||
void testGetContenu() {
|
void testGetContenu() {
|
||||||
StockManagement stock = new StockManagement("Stock1");
|
Cart cart = new Cart();
|
||||||
Accounting compta = new Accounting("Compta1");
|
|
||||||
Cart cart = new Cart(stock, compta);
|
|
||||||
|
|
||||||
assertEquals("Contenu du panier", cart.getContent());
|
assertEquals("Contenu du panier", cart.getContent());
|
||||||
}
|
}
|
||||||
|
|
@ -21,7 +19,10 @@ class CartTest {
|
||||||
void testInitiateOrder() {
|
void testInitiateOrder() {
|
||||||
StockManagement stock = new StockManagement("Stock1");
|
StockManagement stock = new StockManagement("Stock1");
|
||||||
Accounting compta = new Accounting("Compta1");
|
Accounting compta = new Accounting("Compta1");
|
||||||
Cart cart = new Cart(stock, compta);
|
Cart cart = new Cart();
|
||||||
|
|
||||||
|
cart.addObserver(stock);
|
||||||
|
cart.addObserver(compta);
|
||||||
|
|
||||||
ByteArrayOutputStream outContent = new ByteArrayOutputStream();
|
ByteArrayOutputStream outContent = new ByteArrayOutputStream();
|
||||||
System.setOut(new PrintStream(outContent));
|
System.setOut(new PrintStream(outContent));
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue