让我们假设我将这四个类分为两个包:
我为其事件处理内容创建了包myapp.engine
和myapp.engine.events
。如您所见,这会在包之间创建循环依赖性。
如何避免这种情况? 换句话说:哪里是保存与事件相关的类的最佳位置?
答案 0 :(得分:0)
感谢所有评论。现在是时候总结了。我有以下建议的解决方案:
_retrievedStuff
类型为Object
Seelenvirtuose提到。它将打破循环,但随后我们将丢失有关_retrievedStuff
类型的信息。
SomeClassStuff
移至事件包 Seelenvirtuose再次提到。此解决方案也可以,但仅当SomeClassStuff
不依赖于任何myapp.engine类时。否则,周期性的倾向不会消失。
在我的情况下,这不起作用,因为SomeClassStuff
严重依赖于myapp.engine包。所以,我不得不选择第三个选项,即......
我在名为EventStuff
的myapp.engine.events包中创建了类,其中包含事件处理所需的内容,而不依赖来自myapp.engine的任何类。事件处理之前需要的SomeClassStuff
中的任何数据和逻辑现在都在EventStuff
。
然后,SomeClassEvent
将仅依赖于此类,仅此而已。
这是应用解决方案后的类图:
瞧!简单,但有效。