我正在尝试重构现有的 Winform 应用程序以使用 MVP Passive View 模式。应用程序的 UI、业务逻辑和数据存储代码多年来一直自由混合。看起来它要么从单独的层开始,要么有人试图将其分成层。在任何情况下,层边界都没有得到尊重。
由于表单直接操作域对象和数据源(反之亦然),我的首要任务是创建演示者/控制器对象并委派这些职责。
该应用程序是一个 .NET 1.1 应用程序,我正在 VS.NET 2003 中使用相当有限的重构加载项进行开发。我使用现有代码的测试生成器来创建样板单元测试,然后通过并手动编辑每个测试。当然,这最终会测试代码的作用,而不一定是它应该做的事情。对于新课程,我正在做 TDD。
在这种规模的重构工作中,有什么技巧、资源、陷阱需要注意吗?
我已经掌握了一些资源:
- 编程书籍合集;重构, PEAA , WELC
- 互联网(显然)
- 大量含咖啡因的饮料
更新:作为一个例子,你会采取什么步骤来改变这个:
private void OneOfManyFormEventHandlers(object sender, System.EventArgs e)
{
string LocalVariable;
decimal AnotherLocal;
if (!this._SomeDomainObject.SomeMethod(ClassField, out LocalVariable, out AnotherLocal))
{
MessageBox.Show("An error occurred calling method");
return;
}
this.FormControl.Value = LocalVariable;
this.AnotherFormContorl.Value = AnotherLocal;
this.AnotherPrivateMethod();
}
进入这个:
private void OneOfManyFormEventHandlers(object sender, System.EventArgs e)
{
this.FormPresenter.DoSomething();
}