我刚刚开始使用Ninject进行依赖注入(inject)(DI),并且正在通过我的 Controller 进行工作,以期使它们与模型脱钩。

目前,在我的 Controller 内部,我正在创建某些给定模型的实例,例如:

var activitiesModel = new ActivitiesModel();

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

我当前正在执行此操作的一个示例是在我的ActivityController内部:
IActivitiesModel _activitiesModel;

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

并在我的global.asax中绑定(bind)在一起:
Bind<IActivitiesModel>().To<ActivitiesModel>();

这是执行此操作的正确方法吗?是否应该为在 Controller 内部实例化的每个模型创建一个新接口(interface)?

为任何帮助而欢呼,并朝着正确的方向前进:-)

最佳答案

这取决于那些模型在做什么。如果它们具有数据访问和操作方法,则应将它们抽象化,以削弱 Controller 和数据访问逻辑之间的耦合,并简化分离测试。如果它们只是POCO和/或数据传输对象,则无需抽象它们。

10-07 19:24
查看更多