真实世界的业务很复杂,我是否可以使用可线性+无能为力的状态实施复杂的业务?
答案 0 :(得分:1)
理论上,您可以在一个州级中实现两个接口。但是,我认为这样做没有意义:
OwnableState
s旨在代表现金或石油等物品,而不是重要的个别单位,而是总金额。例如,一个人可能需要200美元的现金,但他们不需要具有特定序列号的个别笔记。这就是节点的保管库具有从保险库中提取给定OwnableState
子类的 X 数量的功能的原因LinearState
是相反的。它们表示状态的一个单位不一定等同于同一状态的另一个单位的情况,即使它们具有相同的参数。例如,假设属性所有权由PropertyState
s表示。一个财产不等同于另一个财产,你永远不会要求一百个财产或100,000美元的财产;各个属性的身份很重要。因此,PropertyState
自然会成为LinearState