Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
ChatGPT
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
GitHub工具
更多话题
如何理清类之间的关系
08-08-06
willem
有个简单的逻辑:
销售一个产品(product)必须通过两个渠道共同才能完成,各渠道从中拿到一定的提成.比如渠道一拿5%,渠道二拿1%,剩下的就是公司的销售额.这里的提成百分比是可以根据情况设定.
可能有变的情况
一,不同的产品可以设定各渠道的提成百分比,即可以根据不同的产品特征各渠道的的提成不同,
二,渠道数量随时可变, 即我可以增加一个渠道,这个渠道又从中占去一定的百分比.
问题:
一,如何来区分不同的代理商?
二,产品跟渠道是怎样的关系?
各位如何来建模.如何分析.请教
willem
2008-08-06 11:44
能看到变化, 但提炼不出来
banq
2008-08-06 12:01
首先,产品和渠道没有天然直接本质关系,所以,不宜将渠道直接引入产品。
在这个需求中,我好像看到两个实体 一个活动MI:
产品 代理商 以及活动销售
产品只有在发生销售活动时才会和渠道发生关系。这种因活动发生的关系可以归属于动态,不宜划入建模类图中。所以,楼主图中将agenet引入Product这个方向关联是没有必要的。反之,则需要:
目前看来,渠道agent是由三个要素组成:代理商 、提成比例 和产品。注意 渠道可能不是原始实体,而是一种结果或一种关系模型,用来提供销售活动中进行销售分成的一个计算模型(或计算公式 数学公式)。所以,在以后分析中,要避开渠道影响,以产品 代理商 销售为核心。
[该贴被banq于2008-08-06 12:03修改过]
willem
2008-08-06 12:56
对对, 其实这里就是因为有一个促销在这里
willem
2008-08-06 15:07
->>>注意 渠道可能不是原始实体,而是一种结果或一种关系模型,用来提供销售活动中进行销售分成的一个计算模型(或计算公式 数学公式)。
这里感觉,倒没什么复杂的计算公式或者数学公式
单个产品的到帐销售额 =产品单价 - ( 代理A * 5% + 代理B * 2% + ......)
括号里的意思: 即可以没有代理,那么全部归公司,即公司单独完成这笔订单。 如果有多个代理,表示他们共同参与这个订单。从公式看,代理可以动态增减。这里的百分比是具体到每个产品,如果配在数据库里这个量挺大的。
DDD案例源码
编程建模
DDD聚合
DDD上下文语境界定BC