以下是我的想法: 使用 MVC 的目的是分离关注点和 gui 逻辑的可测试性。视图应该能够与不同的模型一起工作,模型应该能够与不同的视图一起工作。
我认为控制器类出于模拟/测试的原因必须实现一个接口,并且视图应该通过这个接口调用控制器方法。但是如果我们这样做,那么在控制器中处理视图元素(文本框、网格等)就变得很困难。因此,控制器必须以某种方式知道这些元素。
1.你通过界面暴露这些gui元素吗?将控制器类定义为部分类,以便控制器可以直接处理 gui 元素(那么接口呢)?你做什么来解决这个问题?
2. 基本上,控制器应该实现多个接口吗?一个用于视图,另一个用于模型层,以使视图/模型能够通过控制器与不同的模型/视图一起工作?
3. 模型层也应该实现模拟/测试接口?
我们如何才能最好地实现我们的测试、松散耦合、SoC 的目的?请分享您的经验/想法。