我刚刚从演示者类重构了一个新的域类,但我不知道在哪里实例化它。
这是对维护不善的遗留项目进行的更大的持续重构工作的一部分。
当前正在由视图的 OnLoad 事件创建 Presenter,并且视图在构造函数中作为参数传递。Presenter 中的所有公共方法都是无参数的并且返回 void。它们使用视图的公共属性与视图通信。
视图,本质上是一种简陋的形式,完全取决于演示者的一切。
这是典型的被动视图模式,我想继续坚持下去。这使我陷入困境。我需要创建一个新域对象的实例供演示者使用。
- 如果我通过构造函数传递它,那么视图必须创建它并获得不必要的依赖。
- 如果我在演示者的任何地方创建它,我无法在单元测试中用模拟对象替换它。
- 如果我将它设为演示者的公共属性,那么我会在使用它的演示者方法上引入创建顺序依赖项,但我仍然没有解决哪个外部类负责创建它。
我目前没有使用任何依赖注入框架。虽然我有兴趣在未来使用它,但源代码仍然很脆弱,无法将第三方框架引入混合中。
我愿意接受任何建议。