我应该为每个模型创建一个界面吗?

时间:2010-05-28 11:32:56

标签: asp.net-mvc asp.net-mvc-2 dependency-injection ninject ninject-2

我刚刚开始使用Ninject进行依赖注入(DI),并正在通过我的控制器工作,希望将它们与我的模型分离一些。

目前,在我的控制器内部,我正在创建一个给定模型的实例,例如:

var activitiesModel = new ActivitiesModel();

对于我以这种方式实例化的每个模型,我应该为这些模型提取接口然后使用DI将这些东西绑在一起吗?

我目前正在执行此操作的示例是在我的ActivitiesController中:

IActivitiesModel _activitiesModel;

        public ActivitiesController(IActivitiesModel activitiesModel)
        {
            _activitiesModel = activitiesModel;
        }

这是我的global.asax:

Bind<IActivitiesModel>().To<ActivitiesModel>();

这是正确的方法吗?我应该为我在控制器中实例化的每个模型创建一个新界面吗?

为正确方向的任何帮助和推动干杯: - )

1 个答案:

答案 0 :(得分:5)

这取决于这些模型正在做什么。如果他们拥有数据访问和操作方法,那么它们应该被抽象化以削弱控制器和数据访问逻辑之间的耦合,并简化分离测试。如果它们只是POCO和/或数据传输对象,那么您不需要抽象它们。