購(gòu)物車的設(shè)計(jì)要求是1.我們點(diǎn)擊任意一件商品的"加入購(gòu)物車"選項(xiàng),這件商品就會(huì)被加入購(gòu)物車。2.想察看購(gòu)物車情況,只能通過"購(gòu)物車"選項(xiàng),就像我們?nèi)ゲ蛷d點(diǎn)菜,我們點(diǎn)一個(gè)菜,服務(wù)員在菜單上加一個(gè)菜。不會(huì)出現(xiàn)服務(wù)員每當(dāng)我們點(diǎn)一個(gè)菜,就把菜單遞給我們看一眼的情況。3.購(gòu)物車頁(yè)面提供"指定商品刪除",清空購(gòu)物車,結(jié)算功能。
我們發(fā)現(xiàn),我們需要一個(gè)"服務(wù)員",這個(gè)服務(wù)員要能默默在菜單上記下我們點(diǎn)的菜,并按我們的意思刪除已點(diǎn)的菜。在這里,我們可以利用session充當(dāng)這個(gè)服務(wù)員。我們把購(gòu)物車放置在session中。需要放入/拿出商品時(shí)就把購(gòu)物車從session中取出,完事再把購(gòu)物車放回session。這樣一來,session始終保存著購(gòu)物車的最新狀態(tài)。
具體操作
1.首先需要兩個(gè)類,CartItem存儲(chǔ)單種商品的屬性,ShoppingCart存儲(chǔ)商品列表,并提供購(gòu)買車內(nèi)商品的增刪方法。在這里我們用HashTable取代List作為Item的存儲(chǔ)結(jié)構(gòu)。因?yàn)镠ashTable可以省去遍歷查詢操作,直接利用Key-Value進(jìn)行讀寫即可。
? ? ? ? ? ? ? ? CartItem類

? ? ? ? ? ? ? ? ? ? ShoppingCart類



2.還需要一個(gè)與session有關(guān)的頁(yè)面,負(fù)責(zé)session與購(gòu)物車的交互。


3.