gpt4 book ai didi

c# - 与 SOLID 和依赖注入(inject)混淆

转载 作者:太空狗 更新时间:2023-10-29 22:11:50 25 4
gpt4 key购买 nike

所以我正在尝试学习 SOLID 原则和依赖注入(inject)。我已经阅读了一些有关该主题的博客文章,并且开始有所了解。但是,有一种情况我找不到答案,将尝试在这里解释。

我开发了一个库来进行文本匹配,它包含一个类 Matcher有一个叫做 Match 的函数结果返回 MatchResult目的。该对象包含诸如百分比、耗时、是否成功等信息。现在,根据我对依赖注入(inject)的理解,高级类不应该“知道”低级类或模块。所以我已经设置了我的图书馆和Matcher类使用 Matcher 的接口(interface)类,这将允许我使用 IoC 容器注册它。但是,因为该函数返回一个 MatchResult对象,“高级类”必须知道 MatchResult违反 DI 规则的对象。

我应该如何解决这个问题,推荐的方法是什么?

最佳答案

DI 声明使用接口(interface)的类不应该知 Prop 体实现的任何细节。但是,MatchResult 不是实现细节,而是接口(interface)协定的一部分(DTO,Match 方法的返回类型)- 没关系。您可以有一个额外的类以不同的方式实现该 IMatcher 接口(interface),但它仍应返回 MatchResult,就像它预期的那样。

关于c# - 与 SOLID 和依赖注入(inject)混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38457179/

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