Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 初学者GUI问题,组织不同的“视图”_User Interface_Language Agnostic - Fatal编程技术网

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

User interface 初学者GUI问题,组织不同的“视图”,user-interface,language-agnostic,User Interface,Language Agnostic,我以前为CLI和web做过很多编程,但最近我开始接触桌面GUI编程 我找到的大多数GUI编程教程都只是解释了可以使用的不同控件,就到此为止。一些更好的软件还略过了一些可用性问题 然而,我的问题不在于API或理论,而在于我的代码 您应该如何组织应用程序可能具有的不同视图,例如IM应用程序具有登录视图、联系人列表视图、对话视图等 这些应该是不同的类还是一个类上的不同方法? 隐藏和显示的不同面板,还是完全不同的窗口 我希望答案尽可能与语言无关,但如果不可能,我考虑的语言/框架是Java/Swing或C

我以前为CLI和web做过很多编程,但最近我开始接触桌面GUI编程

我找到的大多数GUI编程教程都只是解释了可以使用的不同控件,就到此为止。一些更好的软件还略过了一些可用性问题

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

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

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


我希望答案尽可能与语言无关,但如果不可能,我考虑的语言/框架是Java/Swing或C/WPF。但是,如果有另一种语言/框架对学习有更好的帮助,我会考虑使用它。

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

就组织而言,如果它是一个简单的应用程序,请将它们放在根目录或UI文件夹中。或者可能是一个窗口文件夹和控件文件夹


如果它是一个具有多个视图的大型应用程序,则将其分解为功能,即IM文件夹。

我会说,按照Joshua所说的去做,至于使用隐藏和显示的不同面板,我一直在处理旧代码,重复使用Delphi 6的8000多行代码简直是一场噩梦!所以尽可能多地使用不同的窗口

通常推荐的程序总体结构是模型-视图-控制器类型的结构。因此,首先,不要让实际数据成为视图的一部分,它进入模型。从这里开始,由于每个视图窗口中的唯一数据现在几乎完全是布局信息,以及在操作单击、数据显示等时要执行的操作,如果它们不同,那么它们可能应该是不同的类。如果有一些通用功能可以考虑,您可以将其作为基类并从中继承,但最终,具有不同功能的窗口应该是不同的类。

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

这些方法的要点是分解您的功能,这样您就不会遇到难以处理的臃肿表单类

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