我之前已经为CLI和网络做了大量的编程,但是最近我开始进行桌面GUI编程。
我发现大多数用于GUI编程的教程只是解释了你可以使用的不同控件,并将其保留在那里。一些较好的还可以解决一些可用性问题。
但是,我的问题不在于API或理论,而在于我的代码。
您应该如何组织应用程序可能具有的不同视图(例如,IM应用程序具有登录视图,联系人列表视图,对话视图等)。
这些应该是不同的类或不同的方法在一个类? 隐藏和显示的不同面板,或完全不同的窗口?
我希望答案尽可能与语言无关,但如果不可能,我正在考虑的语言/框架是Java / Swing或C#/ WPF。但是,如果有另一种语言/框架明显更适合学习,我会考虑使用它。
答案 0 :(得分:0)
通常,每个视图都是单独文件中的单独类。然后,该类很可能实现一些基类,如Window或Control。
就组织而言,如果它是一个简单的应用程序,请将它们放在根目录或UI文件夹中。或者可能是Window文件夹和Controls文件夹。
如果它是一个包含多个视图的大型应用程序,请将其分解为功能,即IM文件夹。
答案 1 :(得分:0)
我会说约书亚说的是什么,并且使用隐藏和显示的不同面板,我已经处理旧代码,这是一个重复使用的噩梦(8000多行Delphi 6!)所以坚持尽可能使用不同的窗户!
答案 2 :(得分:0)
程序的一般推荐的整体结构是模型 - 视图 - 控制器(MVC)类型的结构。所以,首先,不要将实际数据作为视图的一部分,而是进入模型。从这里开始,由于每个视图窗口中的唯一数据现在几乎完全只是布局信息以及如何处理动作(点击,数据显示等),如果它们不同,它们可能应该是不同的类。如果有一些可以考虑的一般功能,你可以将它作为基类并从中继承,但最后,具有不同功能的窗口应该是不同的类。
答案 3 :(得分:0)
如果您打算使用其中一个主流IDE,它将为您处理部分工作。每个表单的默认值都是不同的类。隐藏面板和标签界面是很好的功能,但帮助自己,并学习嵌入控件组的形式。一些框架允许您直接将一个表单嵌入到另一个表单中。其他人有可以嵌入的特殊容器。
这一点的目的是打破你的功能,这样你就不会遇到难以理解的臃肿的表格类。
我还会花些时间查看一些架构模式,以保持业务逻辑与UI分离。查看此link是一个很好的起点。