gpt4 book ai didi

constructor - 干净的代码 - 依赖注入(inject)

转载 作者:行者123 更新时间:2023-12-04 14:12:30 27 4
gpt4 key购买 nike

我想知道是否有一个“更干净”的解决方案来使用依赖注入(inject)绑定(bind)到具有很多参数的类,因为根据 Robert C.Martin 的清洁代码,最好不要使用超过 3 个参数......任何其他解决方案,想法(和例子?)

最佳答案

Dependency Injection != Lot of arguments

您将使用的参数数量取决于您的个人代码设计,使用 DI,您专注于实现某些目标所需的依赖项,即使您没有按照“依赖注入(inject)/IoC 模式”。如果你有太多的争论,你可能不得不以某种方式重新考虑你的设计。

如果您有疑问,请考虑可维护性。

“如果我必须改变一些东西,它会在哪里?如果我做了那个改变,还有多少其他地方会被改变所触动?”

有可能的解决方法,只是说几个:
  • 将 2 个或多个依赖项包装为新依赖项(当您需要多个依赖项时,您可能不需要这些依赖项的整个 API,因此您可以将其中的一部分隐藏在新接口(interface)后面。)
  • 正如Spock所说,您可以创建一个“参数”对象(留给您的实现:参数列表或对象结构)。

  • 还取决于您的编程语言,您可能会发现某些解决方案比其他解决方案更有用(选项 1 可能更适合 C++ 等语言,其中每个依赖项都会大量增加编译时间,而选项 2 似乎可能与 PHP 等语言一起使用因为需要更少的编码和用户的努力)。

    关于constructor - 干净的代码 - 依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25995768/

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