在阅读了很多关于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);
}