在考虑SRP时,我发现我正在编写的应用程序对我们的主界面/表单失控了。在我们深入项目之前,我想改变它。
使用工具栏,菜单等制作具有“绘图表面”的大型界面有哪些技巧?我也希望这种形式易于测试。是否应该有其他类知道如何控制MainForm
,例如ChangedStateTracker
(监视脏状态),DocumentCreator
或其他类似“File> New”的新类文件?
我遇到的问题是MainForm.cs
内有这么多方法,而且它真的开始难以维护。
如有必要,可以标记为CW。任何其他提示/提示将不胜感激。
答案 0 :(得分:2)
如果这是一个选项,我会创建一组用户控件,它们共同生成整个表单。
这些单独的用户控件可以自己负责,可以单独测试。
对于逻辑本身,创建类。
您可以创建实现某些功能的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如何做到的。
答案 1 :(得分:2)
杰里米·米勒(Jeremy Miller)曾多次写过这篇文章 - 这些应该让你开始: