gpt4 book ai didi

asp.net-mvc - 当太多依赖项注入(inject)服务或 Controller 时的重构策略

转载 作者:行者123 更新时间:2023-12-02 17:48:17 25 4
gpt4 key购买 nike

我有一个 ASP.NET MVC 1 应用程序,它使用 NHibernate 和 CaSTLe Windsor 进行 IoC。 Controller 注入(inject)了服务类,这些服务类处理应用程序所需的所有逻辑和操作。服务类已注入(inject)存储库。每个存储库处理一个对象。对象通过NH映射到DB表。我试图在服务和 Controller 之间保持一对一的关系,但有些服务在多个 Controller 中使用。

问题是某些服务现在依赖于 10-15 个存储库。例如,系统有一个发票组件,其中某些操作取决于用户、客户、工作订单、工作订单行项目、发票、发票行项目、税费等。

当涉及到依赖重载时,人们使用什么策略来有效重构?我正在考虑将一项服务拆分为许多服务,并消除服务和 Controller 之间的一对一尝试。但随后 Controller 级别的依赖性将会增加。根据先前的建议,可以将一个 Controller 拆分为多个 Controller ,但我不认为这是可以完成的,除非您将 View 分解为部分 View ?我意识到这是一个广泛的问题,但我更寻求指导而不是确切的答案。请随意提供类似重构的文章或示例的链接。

最佳答案

你应该refactor to Facade Services ,这涉及滑入一个新的更粗粒度的服务层,以编排更细粒度的服务。目前您的 Controller 正在做太多细粒度的工作。

FWIW my book 第 6 章包含此过程的一个示例,并且还涉及您可以进行的一些心理练习,以确定要分组的适当服务集群。

请记住,一项特定服务可以是多个集群的成员。这基本上只是表明这是应用程序中的核心服务。

关于asp.net-mvc - 当太多依赖项注入(inject)服务或 Controller 时的重构策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6025482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com