给出这个MVC控制器的例子;伪代码...MVC DI/IoC太多依赖?
PostController
{
private IGetPost _getPost;
private ICreatePost _createPost;
private IDeletePost _deletePost;
private IUpdatePost _updatePost;
public ActionResult Get()
{
return _getPost();
}
public ActionResult Create(post)
{
return _createPost(post);
}
public ActionResult Update(posts)
{
return _updatePost(post);
}
public ActionResult Delete(post)
{
return _deletePost(post);
}
}
我的问题是,如果控制器上的任一操作被调用时,控制器的所有依赖对他们创建的实例,这似乎是一个性能buzzkill。有一个更好的方法吗?我唯一的想法是创建4个不同的控制器,每个控制器只有一个动作,但这似乎是矫枉过正。我也想过在每个动作中直接调用DependencyResolver,但是我不确定如果我这样做会对单元可测试性产生什么影响。
如果创建IGetPost,ICreatePost ...对象很难,您是否考虑过创建ObjectPool? –
理想情况下,您应该首先避免过多的依赖关系! – frictionlesspulley