2016-08-01 100 views
1

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

这是一位教授给我的例子,我必须“用它”来表示我的购物车。 的问题是,我有个Product类包含所述类Category和产品清单或类别列表的istance被存储在数据库(I在每个步骤通过查询访问它们)。

现在,首先... book是一个类别或产品?它可以比较智能手机的HTC One M8,例如? 另外,我有一个包含客户端“使用”的所有代码的类。在那里,我没有任何ShoppingCart对象,但是与用户相关的简单ArrayList of Products

我如何能实现我的项目这种模式?方式是?

预先感谢您。

+0

现在没什么......我已经实现了购物车没有图案... I'use产品的一个简单的ArrayList因为我不能低估如何以及在哪里修改我的代码。 –

+0

我用一些其他的模式,比如单和战略,但是,这一次,对我来说,是一个问题... –

+2

从堆栈溢出“帮助”页:[问题询问作业帮助必须包括工作总结你到目前为止已经解决了这个问题,并描述了你正在解决的难题。](http://stackoverflow.com/help/on-topic) –

回答

1

很简单其实,例如在主类中,如果用户增加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.visit(cart); 
    totalPrice += element2.visit(cart); 

在这两种水果和书籍添加:

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(); 
}