Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 访客设计模式-电子商务_Java_Oop_Design Patterns_Arraylist_Visitor Pattern - Fatal编程技术网

Java 访客设计模式-电子商务

Java 访客设计模式-电子商务,java,oop,design-patterns,arraylist,visitor-pattern,Java,Oop,Design Patterns,Arraylist,Visitor Pattern,我正在为大学考试编写一些Java代码,该项目基于“电子商务”。 其中一个要求是将产品插入购物车,我必须使用Visitor模式。 这是教授给我的一个例子,我不得不用它来表示我的购物车。 问题是我有一个Product类,它包含Category类的距离,并且产品列表或类别列表存储在数据库中(我在每个步骤都通过查询访问它们) 现在,首先书籍是类别还是产品?例如,它可以与智能手机或htc one m8相比较? 另外,我还有一个类,它包含客户端“使用”的所有代码。在那里,我没有任何ShoppingCart

我正在为大学考试编写一些Java代码,该项目基于“电子商务”。 其中一个要求是将产品插入购物车,我必须使用
Visitor
模式。

这是教授给我的一个例子,我不得不用它来表示我的购物车。 问题是我有一个
Product
类,它包含
Category
类的距离,并且产品列表或类别列表存储在数据库中(我在每个步骤都通过查询访问它们)

现在,首先<代码>书籍是类别还是产品?例如,它可以与智能手机或htc one m8相比较? 另外,我还有一个类,它包含客户端“使用”的所有代码。在那里,我没有任何ShoppingCart对象,只有一个与用户相关的产品的简单
ArrayList

如何在项目中实现此模式?哪条路


提前谢谢。

实际上非常简单,例如,在您的主类中,如果用户添加了两个元素:

    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);
在“水果”和“书籍”中添加:

public void accept(ShoppingCartVisitor v) {
    v.visit(this);
}
在购物车VisitionImpl中:

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

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

现在什么都没有。。。我已经实现了没有模式的购物车。。。我使用一个简单的产品数组列表,因为我无法理解如何修改代码以及在何处修改代码。我使用了一些其他模式,如singleton和strategy,但是,对我来说,这是一个问题…从堆栈溢出“帮助”页面:是的,我知道。。但是,如果我还不明白什么是book::产品或类别,我怎么能得到一些代码呢?我在黑暗中摸索…我有一些代码要发布,比如产品类、类别类或客户机代码部分,但它们与此问题无关。。。