【发布时间】:2014-03-27 10:42:46
【问题描述】:
假设我将四个类分为两个包:
我创建了包myapp.engine 和myapp.engine.events 用于事件处理。如您所见,这会在包之间创建循环依赖。
如何避免这种情况? 换句话说:保存与事件相关的类的最佳位置在哪里?
【问题讨论】:
-
为什么事件或监听器需要依赖引擎包?
-
您是否担心它会收到不应该的消息,然后会做不该做的事情?
-
@Jon Skeet:例如,事件可能包含对该包中某些类的引用,该类在 SomeClass 中使用。然后听众使用这个类。
-
这听起来像是应该进入问题的更多信息。一个显示所有相关类的完整示例会更容易为您提供帮助。
-
似乎双向依赖只存在因为 SomeClassEvent 使用 SomeClassStuff。由于这显然是事件 API 的一部分,因此 SomeClassStuff 类也应该进入事件包。然后你就有了一个清晰而有凝聚力的包。
标签: java events listener packages