我目前正在编写一个网络抓取工具,它从互联网上检索信息。简化它看起来像这样。循环依赖最佳实践
数据访问项目
- 对象来获取原始数据
- 对象的原始数据解析为对象(!!)
- 的实体解析器回报。
现在,我创建实际的解析器,我要去使用它是这样的:
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命名空间中,但它没有意义......它是一个圆圈,我不知道如何解决这个问题。那么我可以想出一些东西,比如在这些图层之间创建另一个图层。
但我只想知道,你会如何解决这个问题。什么是好的(或最好的做法)。
为什么您的数据访问命名空间中的检索器和解析器,在您保存实体之前,它们确实与数据访问无关? – Hawxby 2011-01-19 12:14:21
对不起,但我没看到这个圈子。 – SWeko 2011-01-19 12:14:56