0
我想在我的程序中使用MVC模式實現觀察者模式。我正在這樣做,以便View可以看到我在模型中可能做的任何更改(我將稍後執行掃描器輸入並追加到已存在的HashMap中)。但我正在努力如何將Observer實現到我的程序中。在視圖中實現觀察器(Java)
這裏是視圖:
package product.view;
import product.controller.Controller;
public class View{
private Controller cont;
public View(Controller cont) {
this.cont = cont;
}
public void test() {
cont.makeNewSale();
enterItem(1);
}
private void enterItem(int itemId) {
int quantity = 1;
try {
System.out.println("");
System.out.println("Result for item " + itemId + ": " + cont.enterItem(itemId, quantity));
System.out.println("");
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
這裏是ProductCatalogue
在型號:
package product.model;
import java.util.Map;
import java.util.HashMap;
public class ProductCatalog {
private Map<Integer, ProductSpecification> products = new HashMap<Integer, ProductSpecification>();
public ProductCatalog() {
products.put(1, new ProductSpecification(1, "low fat milk",
"a very long description, a very long description, a very long description", 10));
products.put(2, new ProductSpecification(2, "butter",
"a very long description, a very long description, a very long description", 10));
products.put(3, new ProductSpecification(3, "bread",
"a very long description, a very long description, a very long description", 10));
System.out.println(products.toString());
}
public ProductSpecification findSpecification(int itemId) {
return products.get(itemId);
}
boolean findSpecification() {
throw new UnsupportedOperationException("Not supported yet.");
}
}
爲什麼要將控制器作爲參數傳遞給視圖的構造函數? – Blip
的確,爲什麼不建模? – Crazyjavahacking
因爲我希望所有呼叫都從控制器轉到模型。 – Reps4Jesus