洋葱建筑:工厂实施的位置?

时间:2011-08-20 15:36:21

标签: design-patterns architecture dependency-injection onion-architecture

我要建立新的“企业解决方案”

所以我决定使用“洋葱架构”因为我想要灵活的架构。

但我对“依赖性解决”问题不熟悉。

据我所知,我应该在这个图层中放置工厂“实现”,并且该图层包含对所有其他图层的引用。

然后,当 FactoryImplementation in DependencyResolution 图层和UI层时,我想知道如何在“ UI图层”中创建 IFactory 的新实例没有引用“DependencyResolution Layer”


修改::

感谢Erik先生

但是当我看到许多这些链接后,当我想将“注册”实现“注册”到他们的“接口”时,我仍然有问题,因为我在UI项目中无法做到这样的事情:

kernel.Bind<ITaxCalculator>()
      .To<TaxCalculator>()
      .WithConstructorArgument("rate", .2M);

因为UI项目无法访问TaxCalculator“实施”。

1 个答案:

答案 0 :(得分:5)

我认为最好的解决方案是使用依赖容器(也称为IOC容器)来解析您的引用,例如Castle Windsor或Unity(如果您使用的是.NET)。它们使您能够配置依赖项解析,而无需引用UI层中的实际实现。

编辑:一些链接: