Unity Constructor Injection - Overkill或替代方法?

时间:2014-02-14 09:34:58

标签: c# dependency-injection inversion-of-control unity-container

我目前正在学习Unity,到目前为止,我所尝试的一切工作正常并且符合预期。然而,真正让我烦恼的是将依赖注入到构造函数中。

考虑以下服务:

public class ReallyComplexService : IReallyComplexService {

    public ReallyComplexService(INeedThisRepo repo1, INeedThisRepo2 repo2, INeedThisRepo3 repo3, IAlsoNeedThisDependency dependencyX, INeedAUnitOfWork uow, INeedCoffeeNow coffee, IShouldBetterAskJonSkeet skeet) 
    {
        this.Repo1 = repo1;
        this.Repo2 = repo2;
        this.Repo3 = repo3;
        this.AdditionalDependency = dependencyX;
        this.UnitOfWork = uow;
        this.Coffee = coffee;
        this.JonSkeet = skeet;

        skeet.Ask();
    }

}

服务可以变得非常大,特别是当它们不仅仅是某个网站的服务层时,通过向数据库写入/读取数据来完全发挥作用。例如。提供复杂任务的Windows服务(请从此IP摄像机录制Videostream,并在摄像机离线时通知我)。这可能会将构造函数变成一个完全不可读的代码墙。

是否有另一种方法来满足类的依赖关系?

0 个答案:

没有答案