Actualmente estoy escribiendo un raspador web que recupera información de Internet. Simplificado, se ve así.Mejor práctica de dependencia circular
proyecto de acceso de datos
- objetos para recuperar los datos en bruto
- objetos para analizar los datos en bruto en los objetos (!!)
- Las entidades que el analizador devoluciones.
Ahora, estoy creando el analizador real, y voy a utilizar de esta manera:
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.
}
}
}
Como se puede ver, el analizador devuelve una Entidad. Sin embargo, esto está en el espacio de nombres de DataAccess, sin embargo, no tiene sentido ... es un círculo, y realmente no sé cómo solucionarlo. Bueno, podría llegar a algunas cosas, como crear otra capa entre esas capas.
Pero solo quiero saber cómo resolverías esto. Y lo que es bueno (o la mejor práctica) para esto.
¿Por qué sus retrievers y análisis en el espacio de nombres de acceso a datos, seguramente no tienen nada que ver con el acceso a datos hasta que llegue a salvar la entidad? – Hawxby
Lo siento, pero no veo el círculo. – SWeko
@Beliskner He intentado compararlo con un SQL DAL. Las funciones que obtienen la información de los servidores SQL generalmente están en el DAL (comparable a mis recuperaciones), y las funciones que convierten los datos brutos en objetos utilizables también suelen estar en el DAL (comparable a mi analizador sintáctico). –