4

有没有办法继承/扩展 Djinni 的 DSL 中的接口?

例如:

parent = interface +c {
  parentMethod();
}

child1 = interface +c {
  childMethod1();
}

child2 = interface +c {
  childMethod2();
}

我想继承child1child2parent.

4

1 回答 1

6

Djinni 目前没有接口继承。这不是因为我们反对它(欢迎拉取请求!),而仅仅是因为它在 Dropbox 的开发中并不是必需的。通过一些显式方法,您可能会得到接近您需要的东西。例如,为您的子对象添加一个 asParentInterface() 方法。在 C++ 层,您可以选择仅将“this”强制类型转换返回到另一种类型,并且您的 impl 对象将多次继承自 Djinni 基类。在应用程序语言中,您会在同一个底层对象上看到多个不同的代理对象。

于 2015-03-02T23:36:40.657 回答