我目前正在学习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,并在摄像机离线时通知我)。这可能会将构造函数变成一个完全不可读的代码墙。
是否有另一种方法来满足类的依赖关系?