我继承了一个 WinForms 应用程序,该应用程序在业务逻辑和 UI 控件之间的关注点分离方面存在重大问题。两者如此紧密地交织在一起,以至于在不引入显着回归的情况下,UI 修改/扩展几乎是不可能的。
作为 MVP 重构提案的一部分,我面临的问题之一是如何最好地定义影响我们模型的操作。在应用程序的多个区域中使用了很多这些操作(例如,更新客户历史记录),因此我不想将模型交互直接编码到演示器中。
许多影响给定持久对象的操作已经封装在该对象中(尽管是静态方法)。我应该继续这种模式,重构以使方法基于实例,还是将方法拆分为一组单独的类似 API 的类?
编辑:
我在这里真正要问的是:是否可以将影响模型的方法封装在定义模型的类中,或者我应该保留这些 POCO,并在一组单独的类中实现这些方法,这些类定义了模型的 API?