gpt4 book ai didi

c# - 循环依赖最佳实践

转载 作者:太空狗 更新时间:2023-10-29 22:17:27 24 4
gpt4 key购买 nike

我目前正在编写一个网络抓取工具,用于从互联网上检索信息。简化后看起来像这样。

数据访问项目

  • 检索原始数据的对象
  • 将原始数据解析为对象的对象 (!!)
  • 解析器返回的实体。

现在,我正在创建实际的解析器,我将像这样使用它:

using Application.DataAccess;
using Application.DataAccess.Entities;

namespace Application{
public class TestScraper{
public static ScrapeIt()
{
var source = DataAcces.Retriever.Retrieve("http://example.com");
DataAccess.Entities.Entity entity = DataAccess.Parser.Parse(source);

//Do stuf with source here.
}
}
}

如您所见,解析器返回一个实体。然而,这是在 DataAccess 命名空间中,但是,它没有任何意义......这是一个圆圈,我真的不知道如何解决这个问题。好吧,我可以想出一些办法,比如在这些层之间创建另一个层。

但我只想知道,你会如何解决这个问题。什么是好的(或最佳实践)。

最佳答案

您可以通过将两个类都引用的东西分解到一个新类中来修复循环引用,然后旧类都引用新类。

因此,在您的情况下,您可以将实体从 DataAccess 中移出,并可能移到一个新的 Entities 命名空间中,由 DataAccess 和 Application 使用。

这样你就可以开始

A <--> D

最后是

A --> E
D --> E

关于c# - 循环依赖最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4734998/

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