作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我倾向于使用相当 self 记录的 void doSomething() 方法来实现 UI 功能,即如果用户按下此按钮然后执行此操作,然后启用此列表框,禁用该按钮等。这是最好的方法吗?一般 UI 管理是否有更好的模式,即如何控制控件何时启用/禁用等。等等取决于用户输入?
我常常觉得我正在转向“做所有事情的大类”反模式,因为似乎与“主”表单类交互太多。通常,即使我在使用相对模块化设计实现的类中包含私有(private)状态变量,我仍然发现它增长得如此之快,这太荒谬了。
那么,人们可以给我一些好的建议,让我在不落入这些陷阱的情况下生成高质量、可测试、解耦的 WinForms 设计吗?
最佳答案
你可以试试MVP如果您想将 UI 的逻辑放在一个单独的类中..
正如 Martin Fowler 或 Michael Feathers 所说,在模型 View 演示器中,UI 的逻辑被分离到一个称为演示器的类中,它处理来自用户的所有输入并告诉“哑” View 显示什么以及何时显示.该模式的特殊可测试性来自于这样一个事实,即整个 View 可以用一个模拟对象替换,这样最重要的部分呈现器可以很容易地单独进行单元测试。
关于c# - 在 WinForms 中实现干净的 UI 功能同时保持体面的解耦架构的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/124096/
我是一名优秀的程序员,十分优秀!