对类似的合约/状态/流使用 Java/Kotlin 继承



在Corda上做了很多阅读之后,现在是时候潜入并弄湿我的脚了。我的用例有四个合约,它们具有相似的功能和一些通用的数据字段,但它们也有一些自己的流程和验证。他们共享一些验证。

如果这是一个纯粹的Java应用程序,我将基于一个公共抽象类直接潜入四个实例化类的继承。

同样的原则适用于Corda吗?还是我会让最简单的先工作,然后克隆代码并修改它?这似乎是一个可怕的想法,让人想起那些糟糕的过去程序代码时代。但是Corda将如何应对继承和覆盖的验证规则呢?

只要你在普通的 corda 合约类上实现正确的接口,就不应该有太多问题。

如果你想创建一个通用合约"子接口",你完全可以,只要你支持和实现正确的合约方法。

它可能看起来像这样。

// Filename: Sports.java
public interface Sports {
public void setHomeTeam(String name);
public void setVisitingTeam(String name);
}
// Filename: Football.java
public interface Football extends Sports {
public void homeTeamScored(int points);
public void visitingTeamScored(int points);
public void endOfQuarter(int quarter);
}
// Filename: Hockey.java
public interface Hockey extends Sports {
public void homeGoalScored();
public void visitingGoalScored();
public void endOfPeriod(int period);
public void overtimePeriod(int ot);
}

https://www.tutorialspoint.com/java/java_interfaces.htm#:~:text=Extending%20Interfaces,methods%20of%20the%20parent%20interface。

最新更新