利用中介者模式与观察者解决购物车与商品列表联动问题
来源:互联网 发布:淘宝如何给差评 编辑:程序博客网 时间:2024/05/21 20:23
由于项目保密性只介绍出现的问题和解决方案的思路。
说明:
1 商品分类列表:显示商品分类名称以及此分类下放入购物车商品的总数量。
2 商品列表:显示商品信息和两个操作按钮“+”,“-”以及加入购物车数量。
3 购物车列表:显示购物车商品信息和两个操作按钮“+”,“-”以及数量。
4 搜索列表:显示商品信息和两个操作按钮“+”,“-”以及加入购物车数量。
问题:商品列表、购物车列表、搜索列表都可以将商品添加到购物车,当一方操作如何将其他列表已加入购物车商品的数量进行同步?
最初我采用一方操作通知其他三方(如上图),先不说如何实现假如又出现一个列表这层关系就变成了一对四,对象关系更加错综复杂难以维护起来。
为此我找寻解决此类问题的最佳解决方案中介者模式+观察者模式
如图所示四个列表中间多了一个商品管理也就是中介者,现在的关系就变成了一对一,当一个列表数量改变只要告诉商品管理就好了他会通知其他列表更新(使用观察者模式)。
代码思路
1. 商品管理为单例并维护商品集合(所有商品列表的数据源)。
2. 商品管理定义通知更新回调接口,并维护一组回调接口List。(所有商品列表实现此接口并添加进来)
2. 商品管理提供add(Godd good) ,remove(Good good)方法(列表操作时调用)并在最后调用updateNotify()。
3. updataNotify()方法迭代回调接口List并执行回调方法。
4. 所有的列表在回调方法里进行更新Adapter.notifyDataSetChanged()。
这样整个模块的思路以及类与类的关系就清晰了,维护起来也方便。
阅读全文
0 0
- 利用中介者模式与观察者解决购物车与商品列表联动问题
- 中介者模式与观察者模式
- 如何区分javascript设计模式中的中介者模式(Mediator Pattern)与观察者模式(Observer Pattern)?
- 使用观察者模式完美解决activity与fragment通信问题
- 使用观察者模式完美解决activity与fragment通信问题
- 利用DeviceEventEmitter解决标题栏和数据列表联动问题
- Java与模式-中介者模式
- 语言与模式-20中介者模式
- 门面模式与中介者模式
- SSH框架搭建电商系统之购物车表与购物车和商品库存问题(不用jquery)
- 外观,代理与中介者模式
- java购物车中金额与数量联动
- 日语的商品购物与消费
- ECSHOP如何解决购物车中商品自动消失问题 session 失效 丢失的问题
- 观察者模式与建造者模式
- 观察者模式与发布订阅者模式
- 利用观察者模式实现Service与Activity的通信
- cppunit与观察者模式
- 有关session生命周期
- JSP案例_利用JBDC连接Mysql数据库,并查询数据
- 各种Request之Demo
- 对特定Q位末尾零,求解N!的N的分治算法
- github 上新建仓库
- 利用中介者模式与观察者解决购物车与商品列表联动问题
- Linux 下G++编译C++11
- Bokeh库快速入门
- svn merge和branch
- 类似ios select下拉选择框的实现
- 高通AF驱动配置
- 设计模式--原型模式
- 24.交换每对节点
- C++笔记(二)