想象一下下面的情形:我们有一个包 A
带接口 IntA
在emf模型和包中定义 B
与班级 classB
. 当我们从包中的emf模型生成代码时 A
我们会得到 IntA
以及 IntAImpl
分别包含接口声明和实现的文件。
现在假设我们想在 IntAImpl
可以和班级一起工作 classB
. 我们需要添加包 B
到包的必需包 A
. 我们也希望如此 classB
可以用接口操作 IntA
从捆绑包 A
. 这使我们不得不添加捆绑 A
到所需的捆绑包 B
. 我们有循环依赖。
如果接口和实现在不同的bundle中声明的话,一切都会很好——比如, A.int
以及 A.impl
. 这样一来, B
以及 A.impl
会依赖于 A.int
以及 A.impl
会依赖于 B
-没有循环。
现在问题来了-有没有可能让emf在不同的包中生成接口和实现?如果没有,那么它应该如何处理这种问题呢?
1条答案
按热度按时间3vpjnl9f1#
2008年有一个老帖子回答了这个问题:
https://www.eclipse.org/forums/index.php?t=msg&th=134600/
简而言之:这是不可能的。
在任何情况下,您都声明“intimpl可以与class classb一起工作”。那么,这是一个理论上的情况,你心里不会发生,或你确定这种情况会发生?