C# - Windows 表单设计

C# - Windows Form Design

我是 GUI 编程领域的新手,并且为我用 C# 构建的应用程序编写了一个简单的 GUI。 GUI 非常简单,仅包含一个 windows 表单。我的问题是关于使用 GUI 及其用户输入的面向对象的标准实践。

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

当前 UML class 图: Sample Class Diagram

戴夫

不,标准做法是将您的 UI 层与您的表示逻辑层分开,以使您的 UI 尽可能干净和轻量级(因此可测试)。这还有一个额外的好处,即遵守 separation of concerns. There are many patterns you can study to accomplish this: MVVM, MVC, MVP,等等。

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

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