在.NET中如何设计MVC设计模式的控制器层

时间:2020-03-06 14:50:40  来源:igfitidea点击:

我们如何才能最好地实现我们的测试(松散耦合)SoC目的?请分享经验/想法。

解决方案

我认为视图应该实现一个接口并通常通过构造函数传递给控制器​​。这样,控制器可以使用视图界面的字段来获取视图使用的控件的值。它也可以使用我们选择的任何模型。这会给我们所需的模型和视图之间的松散耦合。

通过通过构造函数传递模型的存储库,可以对模型执行相同的操作。然后,存储库方法可以返回模型类必须实现的接口。

然后,我们可以让控制器实现一个接口,并在运行时使用IoC容器获取适当的控制器(容器将自动为控制器提供适当的视图和模型存储库。这将使控制器能够轻松换出以替换控制器。当前视图/模型组合的另一种视图,但是总的来说,我发现这是不必要的,因为每种视图(视图接口)只有一个控制器。

如果gui有数百个元素,则通过界面公开gui元素可能是一项艰巨的任务。但是我看不到另一种选择:部分分类将使gui逻辑更难测试,并且也破坏了MVC基础。
因此,可以将要处理的元素作为方法中的参数进行传递。这样可以减少编码量。