依赖注入 – 传统的3层架构与3层的IOC
我正在构建一个带有表示层(PL),业务逻辑层(BLL)和数据访问层(DAL)的3层体系结构.
传统的3层架构逻辑表明BLL应该充当PL和DAL之间的中介. PL不应该知道存在数据库,而DAL不应该知道存在BLL或PL. 上面的实现将在3个不同的物理项目之间创建以下依赖关系,如下所示
然而,通过在BLL中定义接口来实现和通过构造函数注入使用DI,在BLL和DAL之间应用IOC的概念将改变依赖关系,如下所示
国际奥委会和传统的三层冲突也是如此吗? 理想情况下,我希望实现以下目标,同时用DI维护我的IOC.
你怎么做到这一点 ? 解决方法
首先,您可以考虑使用接口来解耦图层,并且可以将接口分隔为单独的dll.这样,每个层只依赖于下面层的接口.
我也不确定为什么你需要从DAL到BLL的耦合?这是回电吗?你不能用事件吗? 假设所有3个层正在运行,并且假设您的PL是您的应用程序(组合根)的“入口点”,那么IMO通常的依赖关系如果您已经使用PL中的引导代码分离出接口,则: > PL =>引用BLL和DAL(具体和接口)以及IoC容器 PL可以将IoC配置卸载到Bootstrapper dll,从而导致: > PL =>引用BLL接口和引导程序 对于某些容器,您可以避免在using configuration,or convention之前从引导程序引用所有dll的要求.但是,这些dll显然仍然需要与您的应用程序一起部署. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |