2016-05-10 6 views
1

emfモデルでというインタフェースと定義されたAバンドルと、classBというバンドルBがあるとします。バンドル内のemfモデルからコードを生成するときは、それぞれAとなります。IntAIntAImplのファイルには、それぞれインタフェースの宣言と実装が含まれています。別個のインタフェースと実装emf ecore

ここで、IntAImplの一部のメソッドの実装で、クラスclassBを使用できるようにしたいとします。バンドルAの必要なバンドルにバンドルBを追加する必要があります。 classBは、AIntAというインターフェースで動作することもできます。これにより、AというバンドルをバンドルBの必要なバンドルに追加することができます。私たちはちょうど循環依存を持っています。

A.intA.implのように、インタフェースと実装が異なるバンドルで宣言されていれば、すべてうまくいっていたはずです。このようにして、BおよびA.implは、A.intからの依存性を持ち、A.implは、B - サイクルなしからの依存性を有するでしょう。

ここで、emfが異なるバンドルでインターフェイスと実装を生成できるようになるのでしょうか?そうでなければ、このような問題にどう対処するのですか?

答えて

1

この質問に答える2008年からの古いポストがあります:要するに

https://www.eclipse.org/forums/index.php?t=msg&th=134600/

:それは不可能です。

いずれにしても、「IntAImpl がクラスclassBで動作する可能性があります」と述べています。だから、これは起こりえないことをあなたが念頭に置いている理論的な状況ですか、あるいはこの状況が起こると確信していますか?

+0

私は時々、記述されているのと同じ基準で発生する循環依存を取得します。はい、実際には、循環依存を取り除くためにクラスを再設計する方法は常にあります。実装とインターフェイスが最初から分離されていても、依存関係はありません。だから、なぜそうでないのか不思議です。 – DartLenin

+0

私はこの記事を見ましたが、輸出パッケージを制限しても、私の質問に書かれている問題は解決されません。 – DartLenin

関連する問題