购物车架构 一:添加商品到购物车

不管是springmvc,struts2 还是需要有好的设计思想,这样才能将任务完成好。
不光是要考虑架构设计适合合理,是否具有扩展性,可读性,可维护性。
可扩展性指的是加入有另外一个产品加入了购物车,是不是能快速的进行开发,如果有和
其他产品不同的属性是否能快速兼容。
可读性指的是程序的起名是否恰当,比如一个命名太长或者是太短,或者是无关意义的字段
可能会影响程序的阅读,还有适当的注释是非常有必要的。比如方法的注释尽量用 /*/
这种方式 ,这种方式在程序调用方法的时候会将注释显示出来,而不用去直接去找代码了。
注释尽量占程序的30%-40%
可维护性:日志的添加也是非常有必要的,线上的环境很难去调试,只能通过一些日志信息,去追溯之前的问题。那么日志的添加就显得尤为重要。一种是文件的方式存储,另外一种方式是通过数据库存储。
这两种都有优点和缺点,重点是看这个是不是特别重要。
其实购物车设计有很多的办法,将购物车抽象成一个可以任何产品都可以通用的购物车。
一个图书产品action 都去继承CommonGenericAction,所有的产品都调用父类的方法,去加入到购物车。
流程:
1:首先判断用户是否登陆,没有登陆,则将对象加入到cookie中。
因为cookie如果存入产品过多,cookie一个参数其实是有限制的。
所以尽量将参数转换为json格式,然后参数的key值尽量简化,或者用一个字母来代替。
ShopCartCookiesVO cartCookies = new ShopCartCookiesVO();
可以对构造一个对象,这样添加参数会比较方便。
参数中会构造一个UUID,这个是通过程序生成,然后去数据库中查询是否有相同的UUID,
如果不存在,则不会去继续生成UUID ,这个地方可以用do while循环,一直到UUID的生成。

这里写图片描述

2:然后将ShopCartCookiesVO 多个产品加入到List中 ,
shopCartList.addAll(newAddlist);
如果用户没有登陆,则转化为json,并对将json进行加密,
String encodeJson = URLEncoder.encode(json.toString());
放入到cookie中。
this.getResponse().addCookie(shopCartListCookie);
当cookies超过最大容量,则提醒。
log.warn(“购物车商品信息超过Cookie最大容量{4095}”);

3:当用户登陆过了,
则将对象
ShopCart shopCart = new ShopCart();
将ShopCartCookiesVO 里面的数据set到shopCart中,然后调用进行插入操作。

猜你喜欢

转载自blog.csdn.net/PYouLing123456789/article/details/50854726