对于交叉甚至多层交叉的场景怎么进行封装

2023-09-11 18:20:01 +08:00
 dzdh

标题有点抽象 具体点比如是商品和渠道和销售逻辑的关系

比如 一个集中管货的平台,一个商品可以在淘宝卖,也可以在京东卖,也可以在夕夕上卖

产品设计开始,商品+平台就是一个商品对多个渠道的关系,那么封装就是一个 ChannelAdapter 。

铺货、上货调用就是:Publish($goods, adapter = new Jingdong()): adater.publish($goods)

其他下架、上架对应的参数调整都大同小异。

突然有一天,产品说,我们商品不同类型要开始区分销售行为了,理解就是 实体商品需要物流的,要走一个物流的逻辑,虚拟商品的,要走虚拟逻辑,虚拟还分是三方充值类的还是卡密类的。卡密类的不能在夕夕上卖,三方充值的不能在淘宝上卖。

那该怎么处理这个解耦呢

根据调用猜逻辑 Publish($goods, new Jingdong(), new VirtualCard()) ? 京东这个 channel 去判断传入的是 virtualgoodsinterface 还是在 publish 这里整个映射呢?

还有,比如后台管理系统要能知道这个 goods 能上到哪个渠道,这个渠道能上哪类呢?Goods.GetAvailableChannel()/ Channel.GetAvailableType() / ??

599 次点击
所在节点    编程
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/972809

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX