我如何保留MVC原则并使我的网站更加友好?

时间:2010-11-09 17:26:09

标签: asp.net-mvc design-patterns

我在ASP.NET MVC Framework中创建了一个简单的网站,其中包含用户,文章等,以及用户配置文件中的图像。有一个简单的静态类用于图像处理(调整大小,裁剪和保存硬盘上的图像),放在“助手”目录中。我想知道如何处理代码以保留MVC原则并使整个网站更加单元测试友好。

素不相识

2 个答案:

答案 0 :(得分:2)

使辅助类非静态,将其声明为控制器构造函数的参数,并将其注入使用依赖注入的控制器工厂。

答案 1 :(得分:2)

为了使您的控制器不依赖于您的图像处理帮助器,您需要让它与接口进行通信,而不是具体的类。所以创建一个像IImageManipulator这样的界面,让你的控制器调用方法在那个接口而不是你的类上。您的图像操纵器类将需要实现此接口。您需要使用依赖注入技术来将具体实现注入到控制器中(有几种可接受的方法可以执行此操作)。

现在您的控制器将依赖于接口而不是具体实现,允许您通过模拟IImageManipulator接口并将该模拟注入控制器来对控制器进行单元测试。