1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| package eternal.fire;
import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map;
public class Store { private List<ProductObserver> observers = new LinkedList<>(); private Map<String, Product> products = new HashMap<>();
public void addObserver(ProductObserver productObserver) { this.observers.add(productObserver); }
public void removeObserver(ProductObserver productObserver) { this.observers.remove(productObserver); }
public void addNewProduct(String name, double price) { Product product = new Product(name, price); products.put(name, product); observers.forEach(productObserver -> productObserver.onPublished(product)); }
public void setProductPrice(String name, double price) { Product product = products.get(name); product.setPrice(price); observers.forEach(productObserver -> productObserver.onPriceChanged(product)); } }
|