我刚从演示者类中重构出一个新的领域类,但我不知道在哪里实例化它。
这是对维护不善的遗留项目进行的更大规模持续重构工作的一部分。
Presenter 当前正在由 View 的 OnLoad 事件创建, View 作为构造函数中的参数传递。 Presenter 中的所有公共(public)方法都是无参数的,并且返回 void。它们使用 View 的公共(public)属性与 View 通信。
View 本质上是一种不起眼的形式,完全取决于演示者的一切。
这是典型的被动 View 模式,我想继续坚持它。这让我进退两难。我需要创建一个新域对象的实例供演示者使用。
- 如果我通过构造函数传递它,那么 View 必须创建它并获得不必要的依赖。
- 如果我在 Presenter 中的任何位置创建它,我就无法在我的单元测试中用模拟对象替换它。
- 如果我将它设为演示者的公共(public)属性,那么我会在使用它的演示者方法上引入创建顺序依赖性,但我仍然没有解决哪个外部类负责创建它。
我目前没有使用任何依赖注入(inject)框架。虽然我有兴趣在未来使用它,但源代码仍然非常脆弱,无法将第三方框架引入混合中。
我愿意接受任何建议。
最佳答案
我已经完成了!!! 看看这里 my repository .我在这里的选择是使用构造函数……满足最贪婪的要求我确定演示者已启动。在您的情况下,您可以从 View 中提供依赖项的特定实现。
玩得开心:)
关于c# - 在被动 View 架构中,我应该在哪里为 Presenter 类创建依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/849590/