计费的抽象2

[b] 费率和计费吨的关系是什么?[/b]
有时,计费吨也是决定费率的一个前置条件。
比如:包干费。包干费统一为按照作业方式来定价,如果一种货有多种作业方式,那么我们要知道每种作业方式对应的货物数量是多少。然后我们才能把这个货量放入到费率的RuleExpression中,来去和限定条件进行比较。因此对于包干费而言,就是先去读取作业方式规则,然后确定出计费吨,然后再用计费吨去匹配费率的其他限定条件。作业方式既是计费吨也是费率的决定因素。
堆存费中的时间也起相同作用。
来分析一下堆存费。堆存费按照时间段来限定,我需要知道在每个时间段有多少货,而费率也是由时间段来限定出来的。在这里,时间既是计费吨的Condition,也是费率的Condition。

那有没有更为出色的抽象呢?有一种感觉,就是它像是对于一个蛋糕进行多维的切分。
上文书提到对于计费中几个元素的规则限定,我觉得稳定的抽象应该是拿几个元素,然后呢,那个规则应该是个稳定抽象。甚至是这样的,借鉴WID的设计,计费吨,费率,计费结果(计费公式的三要素,计费公式是个更大的抽象),这三个东西都是需要经过一定的规则确定出来的,计费吨会成为费率确认的前置条件,而等式右侧会成为等式左侧的限定条件。按照这个工作流,那就是计费策略里,先是确定计费吨,再确定费率,接下来是计算,最后是确定计费结果。每一项,都可以安插上一些规则。计费策略接口中有这三个抽象方法就OK了。

[b] 因何而变?因何而分类?[/b]
比如,包干费,到底应该是不同的计费策略实现,还是不同的MatchingRule实现?
还有,我有Charge类,那它的子类是分包干费,港务费,停泊费,堆存费,还是在计费策略实现中区分?
我觉得似乎是后者。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值