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

初学者GUI问题,组织不同的“视图”

  •  0
  • Macha  · 技术社区  · 17 年前

    我以前为cli和web做过很多编程工作,但是最近我进入了桌面GUI编程。

    我发现的大多数关于GUI编程的教程都只是解释您可以使用的不同控件,并将其保留下来。一些更好的软件也忽略了一些可用性问题。

    然而,我的问题不在于API或理论,而在于我的代码。

    您应该如何组织应用程序可能拥有的不同视图(例如,IM应用程序具有登录视图、联系人列表视图、对话视图等)。

    这些应该是不同的类还是一个类上的不同方法? 隐藏和暴露的不同面板,还是完全不同的窗口?

    我希望答案是不可知的语言,但在不可能的情况下,我所考虑的语言/框架是Java/Swing或C.Y/WPF。但是,如果有另一种语言/框架更适合学习,我会考虑使用它。

    4 回复  |  直到 17 年前
        1
  •  0
  •   Joshua Belden    17 年前

    通常,每个视图都是单独文件中的单独类。然后,类很可能实现一些基类,如窗口或控件。

    至于组织,如果它是一个简单的应用程序,把它们放在根目录或用户界面文件夹中。或者是一个窗口文件夹和控件文件夹。

    如果是一个有多个视图的大型应用程序,那么就把它们分解成功能,即一个IM文件夹。

        2
  •  0
  •   Fermin    17 年前

    我会说,按照Joshua所说的去做,至于使用隐藏和暴露的不同面板,我已经处理了旧代码,重新使用它是一个噩梦(8000多行Delphi6!)所以尽可能多地使用不同的窗户!

        3
  •  0
  •   tom10    17 年前

    通常推荐的程序总体结构是模型视图控制器。( MVC )结构类型。因此,首先,不要将实际数据作为视图的一部分,而是将其放入模型中。从这里开始,由于每个视图窗口中的唯一数据现在几乎完全只是布局信息和对操作(单击、数据显示等)所做的操作,如果这些不同,它们可能是不同的类。如果有一些可以分解的一般功能,可以将其作为基类并从中继承,但最后,具有不同功能的窗口应该是不同的类。

        4
  •  0
  •   Kenneth Cochran    17 年前

    如果您要使用主流的IDE之一,它将为您处理一些这方面的工作。对于每个表单,默认值将是不同的类。隐藏面板和选项卡式界面是很好的功能,但是请您自己帮个忙,学习如何将控件组嵌入表单。有些框架允许您直接将一个表单嵌入到另一个表单中。其他的有可以嵌入的特殊容器。

    关键是要分解你的功能,这样你就不会遇到一个很难理解的膨胀的表单类。

    我还将花一些时间研究一些架构模式,以使您的业务逻辑与您的UI分离。看看这个 link 为了一个好的起点。