【问题标题】:Hiding methods from the GUI从 GUI 隐藏方法
【发布时间】:2014-05-16 14:56:07
【问题描述】:

我正在 java 中实现观察者模式,以将我的模型类与 GUI 分开。 问题是,每次调用更新方法时,模型实例都会作为参数给出。这意味着,GUI 可以调用不应从 GUI 调用的模型对象上的方法。 如何避免 GUI 可以操作模型对象?

【问题讨论】:

  • 您可以使用 Java 包让控制器访问 GUI 无法访问的方法。或者你可以依靠荣誉系统。
  • 如果您决定使用包装对象,一些 ide 可以帮助您创建它。例如,在 Eclipse 中,source > create delegate methods 将复制所有方法,将调用转发到内部组合对象。然后你只需删除你不想暴露的其他人。

标签: java user-interface model-view-controller


【解决方案1】:

为了实现这一点,您需要引入另一个层,该层将采用模型对象并将其转换为 DTO 并返回到 GUI,反之亦然。许多项目中使用的一种数据访问设计模式。

欲了解更多信息visit this link

希望这能给你一些想法。

【讨论】:

    【解决方案2】:
    • 为模型类创建一个接口,该接口只定义 GUI 可以调用的方法(即模型类当前实现的方法的子集,只能由 GUI 看到)
    • 让模型类实现这个新接口,这应该很简单,因为方法已经在那里实现了。
    • 在传递模型的方法中,将参数类型从模型的类更改为模型现在实现的新接口

    【讨论】:

      猜你喜欢
      • 2011-01-11
      • 2022-11-10
      • 2016-04-06
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      相关资源
      最近更新 更多