2016-08-01 84 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(); 
}