我大约有10种相似的表单(Windows Forms项目),分为3层(UI,Persistence,Domain)。 所有这些形式都具有相同的行为-显示数据,保存数据,删除数据。
因此,我决定将相同的行为重构到不同的静态类,因此现在我将Save方法,delete方法,Load方法调用到其他静态类并传递参数。 另外,我还重构了代码验证,因此它也调用其他静态类来验证数据。 例如:
SaveHelper.Save(this, saveMethod, _isFormClosing, 41, _backgroundWorkerHelper);
// explanation
// this -> instance of form
// saveMethod -> action delegate pointing to other persistence static class save method
// 41 -> image index
// _backgroundWorkerHelper -> instance of background worker class
我已将这种形式的代码行数从600减少到150。 注意:对于其他静态类,我传递了save或delete方法的动作委托,此实例,后台工作程序类的实例和消息框动作(保存或删除)。 这是一个好方法吗?另外,可以传递表单实例和诸如backgroundworkerHelper之类的其他类吗?
注意:我知道有MVVM模型,但是我还很初级,还不适合我。