代码之家  ›  专栏  ›  技术社区  ›  BubbaT

“连接”非UI对象到GUI对象

  •  1
  • BubbaT  · 技术社区  · 17 年前

    我有一组nonGUI对象,它们与GUI对象有一对一的关系。 所有事件都通过顶层窗口进行路由。

    GUI对象上发生的许多(不是全部)事件都会导致调用关联对象上的方法。

    非UI对象中的某些方法在调用时会更改GUI对象。

    一个例子是类似于带有现代图形用户界面的流氓游戏。 你有一个玩家在一个回合内占据的区域(称之为区域) 在GUI上有与之相关联的对象(一个按钮)。

    问题是,如何设计这种东西?

    IU会衍生出某种接口类吗?

    建议?

    2 回复  |  直到 17 年前
        1
  •  3
  •   Dave Swersky    17 年前

    如果你提到你的平台和语言,这会有帮助,但一般来说,这听起来像你在描述 Model-View-Controller

    你的“GUI”对象就是视图。这是您保存用户界面的所有呈现逻辑的地方。用户与视图的交互由控制器处理。

    控制器是一层薄薄的事件句柄。用户交互调用控制器上的方法,然后这些方法将它们路由到模型。

    你的“非GUI”对象就是模型。这是一个包含业务逻辑的对象,其状态最终通过单击GUI上的按钮来更新。

    你提到在对象之间“嵌入”引用。只要GUI中的事件可以通过某种机制路由到控制器,就不需要这样做。这种设计模式很有用,因为它将用户界面逻辑与业务逻辑分开。你可以很容易地“捕捉”一个新的视图,因为视图和控制器之间很少有事件关联。

    article 有更多的信息和实现示例的链接。

        2
  •  0
  •   Pete Kirkham    17 年前

    有点浪费时间 Falcon's Eye