我正在为大学考试编写一些 Java 代码,该项目基于“电子商务”。
要求之一是将产品插入购物车,我必须使用 Visitor
模式。
这是教授给我的一个例子,我必须“用”它来代表我的购物车。
问题是我有一个 Product
类,其中包含 Category
类的实例,并且产品列表或类别列表存储在数据库中(我通过查询访问它们)每一步)。
现在,首先... book
是一个类别还是一个产品?例如,它可以与智能手机或htc one m8进行比较吗?
另外,我有一个类,其中包含客户端“使用”的所有代码。在那里,我没有任何 ShoppingCart 对象,只有一个与用户相关的简单产品数组
。
如何在我的项目中实现此模式?哪条路是?
提前谢谢您。
最佳答案
实际上非常简单,例如在您的主类中,如果用户添加了 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();
}
关于java - 访客设计模式-电子商务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38704975/