C#-Windows窗体设计

C#-Windows窗体设计,c#,oop,user-interface,uml,C#,Oop,User Interface,Uml,我对GUI编程相当陌生,已经为我正在用C#构建的应用程序编写了一个简单的GUI。GUI非常简单,只包含一个windows窗体。我的问题是关于GUI及其用户输入的面向对象的标准实践 在我的GUI类中,我目前拥有所有GUI相关对象(按钮、标签、选择框等)的成员变量,但我也拥有存储用户输入的变量(例如selectedFilePath、latIndex、longIndex等),当用户单击run时,这些变量只会将其值传递给其他对象。将这些变量保持在同一个类中,直到单击按钮,然后将它们传递给或创建另一个对象

我对GUI编程相当陌生,已经为我正在用C#构建的应用程序编写了一个简单的GUI。GUI非常简单,只包含一个windows窗体。我的问题是关于GUI及其用户输入的面向对象的标准实践

在我的GUI类中,我目前拥有所有GUI相关对象(按钮、标签、选择框等)的成员变量,但我也拥有存储用户输入的变量(例如selectedFilePath、latIndex、longIndex等),当用户单击run时,这些变量只会将其值传递给其他对象。将这些变量保持在同一个类中,直到单击按钮,然后将它们传递给或创建另一个对象,或者我应该做其他事情,这是标准做法吗

当前UML类图:


Dave

不,标准做法是将UI层与表示逻辑层分开,以保持UI尽可能干净、轻巧(因此尽可能可测试)。这还有一个额外的好处,那就是坚持。您可以学习许多模式来完成此任务:、等等

通常,您只希望UI类包含特定于特定UI技术(即控件等)的元素


通过这种方式,您可以为所有UI元素创建模拟类,然后将其与您最喜欢的测试框架一起使用,以针对表示逻辑以及底层业务和域逻辑构建测试。

谢谢roryap,我觉得这不是正确的方法,现在我知道了。我不想开始建造一些东西,只是为了让它出错。@DaveT——没问题。祝你好运