利用中介者模式与观察者解决购物车与商品列表联动问题

来源:互联网 发布:淘宝如何给差评 编辑:程序博客网 时间: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()。

这样整个模块的思路以及类与类的关系就清晰了,维护起来也方便。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 12分扣完了怎么办2018 驾驶证c1扣14分怎么办 车辆被扣12分怎么办 两个违章扣12分怎么办 车辆违章扣12分怎么办 一下扣了20分怎么办 违章扣了100多分怎么办 车子累计扣12分怎么办 起诉了对方不来怎么办 在监狱里被打伤了怎么办 初三要体检没去怎么办 羁押人在看守所没判刑怎么办? 在看守所关两年了还没有判刑怎么办 开麻将馆被拘留怎么办 拘留31天了我该怎么办 收到一封拘留信怎么办 存钱的收据掉了怎么办 行政拘留法制没有批的怎么办 别人起诉我我该怎么办 去钟落潭看守所送衣服要怎么办 长城宽带账号密码忘了怎么办 预约考试密码忘了怎么办 健康证预约号忘记怎么办啊 人在看守所七个月还没结果怎么办 起诉书和判决书丢了怎么办 进了看守所信用卡逾期怎么办 公安局审讯室监控影相被删除怎么办 关进看守所以前的工作怎么办 上海初中借读生学籍怎么办 外地货北京三环怎么办 谁买了小产权怎么办 狗在小区丢了怎么办 太原回迁房多余的房子怎么办 回迁房被开发商抵押怎么办 回迁房源多开发商扣房怎么办 蝈蝈叫晚上怕吵怎么办 蝈蝈总不停的叫怎么办 按揭房没拿房产证夫妻离婚怎么办 按揭房子房产证还没有到离婚怎么办 结婚7年离婚孩子怎么办 合伙经营KTV股东意见不合怎么办