我目前正在編寫一個網絡抓取工具,它從互聯網上檢索信息。簡化它看起來像這樣。循環依賴最佳實踐
數據訪問項目
- 對象來獲取原始數據
- 對象的原始數據解析爲對象(!!)
- 的實體解析器回報。
現在,我創建實際的解析器,我要去使用它是這樣的:
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