想象一下以下情况:我们在emf模型中定义了接口A
的捆绑IntA
,并使用类B
捆绑classB
。当我们从包A
中的emf模型生成代码时,我们将获得分别包含接口声明和实现的IntA
和IntAImpl
文件。
现在假设我们希望IntAImpl
中的某些方法实现可以与类classB
一起使用。我们需要将捆绑B
添加到捆绑包A
的必需捆绑包中。我们还希望classB
可以使用捆绑IntA
中的接口A
进行操作。这使我们将捆绑A
添加到所需的捆绑包B
中。我们刚刚有了循环依赖。
如果在不同的包中声明了接口和实现,那么一切都会好的 - 比如,A.int
和A.impl
。通过这种方式,B
和A.impl
会依赖A.int
而A.impl
会依赖B
- 无周期。
现在出现了一个问题 - 是否可以让emf在不同的包中生成接口和实现?如果没有那么它应该如何处理这种问题呢?
答案 0 :(得分:1)
2008年有一篇旧帖回答了这个问题:
https://www.eclipse.org/forums/index.php?t=msg&th=134600/
简而言之:这是不可能的。
在任何情况下,您都声明“IntAImpl 可以使用类classB”。那么,这是一个你不会想到的理论情况,或者你确定会发生这种情况吗?