当想到 SRP ,我发现我正在编写的应用程序对于我们的主界面/表单来说已经失控了。我想在项目深入之前更改它。
制作具有带有工具栏、菜单等的“绘图表面”的大型界面有哪些技巧?我还希望此表单易于测试。是否应该有其他类知道如何控制 MainForm
,例如 ChangedStateTracker
(监视脏状态)、DocumentCreator
或类似的东西要“文件 > 新建”一个新文档吗?
我遇到的问题是 MainForm.cs
中有太多方法,维护起来确实开始变得难看。
如有必要,可以将其标记为 CW。任何其他提示/技巧将不胜感激。
最佳答案
如果这是一个选项,我会创建一组共同生成整个表单的用户控件。
这些单独的用户控件可以有自己的责任,可以单独测试。
对于逻辑本身,创建类。
您可以创建类似 CreateDocumentCommand
的类来实现某些功能。当例如单击新文档按钮/菜单项,创建此类的实例并执行它。
public interface ICommand
{
bool CanExecute { get; }
void Execute();
}
public class SaveDocumentCommand : ICommand
{
public bool CanExecute
{
get
{
return MainForm.Instance.CurrentDocument.IsDirty;
}
}
public void Execute()
{
// Save your document here.
}
}
顺便说一句,WPF 就是这样做的。
关于c# - 如何管理 WinForms 应用程序的大型界面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4187368/