【问题标题】:2 classes reference each other is this ok?2个类互相引用可以吗?
【发布时间】:2009-03-16 11:55:51
【问题描述】:

如果我有一个类 gui 和一个逻辑类,那么在 gui 中对逻辑和逻辑到 gui 的引用是否非常糟糕?

【问题讨论】:

    标签: java class


    【解决方案1】:

    作为一般规则,让“逻辑”类了解“gui”类是不好的。分离背后的想法是模型/视图设计模式(或模型/视图/控制器)。视图将需要对模型的引用。仔细看看为什么模型需要对视图的引用。通常当模型需要向视图发送信息时使用事件监听器(参见 javax.swing 表和模型列表示例)。

    【讨论】:

      【解决方案2】:

      应该避免。 在您的 GUI 中,您可以引用您的域逻辑,但您不应该在您的域逻辑中引用您的 GUI。

      为什么? 因为否则,您将没有优势将 GUI 和域逻辑拆分到单独的文件中。当您的逻辑依赖于您的 GUI 时,您就不能将您的逻辑与另一个 GUI 一起使用。

      所以,你应该尽量避免这种从你的逻辑到你的 gui 的依赖,或者,你应该对它进行抽象。

      我希望我在这里说清楚。 :)

      【讨论】:

        【解决方案3】:

        如果你能避免它,你可能应该这样做。否则你以后可能会遇到很多循环依赖的问题。

        他们真的必须互相了解吗,或者您是否可以有第三个“控制”概念来引用两者?

        【讨论】:

          【解决方案4】:

          GUI 可能需要向逻辑类公开某种接口,以便在逻辑类发生更改时更新 GUI。

          逻辑不应该直接了解 GUI 实现,只了解它的接口。

          Observer Pattern 有时用于此目的。

          【讨论】:

            猜你喜欢
            • 2011-06-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-09-27
            • 2017-04-03
            • 1970-01-01
            相关资源
            最近更新 更多