如果不知道购物车是什么样子,请去小米商城看一下他的购物车。购物车应该包含这个商品类,同时还应该具有购买的数量,还应该有一个金额的小计。
一个购物车里面可以有很多个商品,这个时候就有一个疑问,你用什么来存储这些商品,在这里我们肯定使用集合,而购物车属于查询多,新增也多,所以我们应该使用map集合,而map集合因为底层是数组+链表+红黑树,所以查询删除性能高,新增快。
在这里我们选择用hashmap,linkedhashmap是有序的,他的有序是表现在存储的顺序上面有序,因为他的底层使用的链表是一个双向链表,而我们现在对于有序并没有要求,所以不选择linkedhashmap。
在这里有一个需要注意的点,购物车里面应该有一个item,用它来作为这个hashmap的value,而不是使用购物车本身来作为hashmap的value,那样子你不感觉很滑稽吗,购物车还能有多个吗?你这样虽然写的没有错,但是你不符合现实逻辑啊,面向对象,面向对象,你这个购物车对象映射的就应该是现实生活中的购物车!!!
何为对象?购物车是一个对象,购买这件事情也是一个对象,你的代码应该尽可能的模拟现实中的购物车和购买,这才是面向对象吗?