访客设计模式 - 电子商务

Visitor Design Pattern - eCommerce

我正在为大学考试编写一些 Java 代码,该项目基于 "e-commerce"。 其中一项要求是将产品插入购物车,我必须使用 Visitor 模式。

这是教授给我的一个例子,我必须"use"它代表我的购物车。 问题是我有一个 Product class ,其中包含 Category class 和产品列表或类别列表存储在数据库中(我访问它们通过每一步查询)。

现在,首先... book是类别还是产品?例如,它可以与 smartphonehtc one m8 进行比较? 另外,我有一个 class,其中包含客户的所有代码 "used"。在那里,我没有任何 ShoppingCart 对象,只有一个与用户相关的简单 ArrayList of Products

如何在我的项目中实施这种模式?哪条路?

提前致谢。

其实很简单,例如在你的main中class如果用户添加了2个元素:

    int totalPrice = 0;
    ShoppingCartVisitor cart = new ShoppingCartVisitorImpl();
    ItemElement element1 = new Fruit(2,3,"Apple");
    ItemElement element2 = new Book(30,"some ISBN number");
    totalPrice += element1.accept(cart);
    totalPrice += element2.accept(cart);

在 Fruit 和 book 中添加:

public void accept(ShoppingCartVisitor v) {
    v.visit(this);
}

并且在 ShoppingCartVisitorImpl 中:

public int visit(Book b) {
     return b.getPrice();
}

public int visit(Fruit f) {
     return f.getPricePerKg()*f.getWeight();
}