我正在启动将使用3层架构和REST API的项目。
我想将每一层划分为单独的模块,因此我肯定至少需要3个模块:
在它们之间建立依赖关系的最佳方法是:
1)
2)
3)
第三种方法似乎与依赖倒置原则最兼容,但是需要更多模块。您如何命名这两个附加模块?
我会将您的BLL代码保留在一个名为Services的项目中,将DAL代码保留在一个名为Repositories的项目中,并将您的接口和业务对象(或实体)保留在一个名为Core的项目中。
您的REST项目应仅引用核心(以及用于解决依赖关系的服务)。您仅对接口编程。如您所述,您也可以在此处采用DI原则。
您的服务和存储库应仅依赖Core。这些具体的实现只需要实现Core接口并作用于Core实体。
这种方法不仅允许您使用DI,而且使测试变得更加容易。此外,您的应用程序都不会与您的具体外部依赖项(即特定的数据库实现)紧密耦合。这使您的整个应用程序更加灵活和可扩展。
旁注:我经常包括另一个名为“基础结构”的项目,以处理诸如日志记录之类的跨领域问题。这些具体的类实现了Core接口,就像我的存储库和服务一样,可以使用接口来调用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句