Pregunta

Estoy creando una clase Factory que construirá y devolverá un objeto. Normalmente haría todas las cosas de datos en la capa de acceso a datos, pero no creo que pueda alcanzar mi objetivo y aún así lo haga. Lo que quiero hacer es usar un SQLDataReader para leer rápidamente la información de datos y llenar el objeto que se devolverá de fábrica. ¿Es esta una idea estúpida? ¿Hay un mejor enfoque? Preferiría no solo devolver un DataSet desde el DAL si es posible, ¿o es una cuestión de rendimiento vs. mantenibilidad?

¿Fue útil?

Solución

En la mayoría de los casos, esta es una buena idea, ya que de esta manera proporciona dos beneficios principales:

  1. De esta forma, puede separar el acceso a los datos y la lógica empresarial, lo que significa que si cambia el diseño de la base de datos, no es necesario cambiar los algoritmos de la capa superior.

  2. Desde el punto de vista de OO, está convirtiendo algunos datos puros en objetos y también puede agregar comportamiento a los objetos, lo que hace que el código sea más fácil de mantener y reutilizar.

Otros consejos

Si está seguro de que utilizará todos los datos que cargue desde SQLDataReader, entonces sí, podría hacerlo en el momento de la construcción en la fábrica. Sin embargo, si el conjunto de datos tiene muchos campos, de los cuales solo se utilizará una minoría, entonces la carga de la demanda de los datos en el momento en que se llama a los accesores sería un mejor uso de los recursos.

Dicho esto, te sugiero que lo cargues en la fábrica cuando tengas todas las 'piezas' a mano, y si no es exactamente correcto, sabrás lo que hay que arreglar. Comience siempre con lo más simple que pueda funcionar.

Diría que depende de su uso esperado de la Fábrica. Si esta es una fábrica en su capa de acceso a datos, que se utilizará para llenar objetos comerciales con datos de la base de datos, entonces sí, este es el lugar para hacerlo. (El patrón IRepository es algo así ... más o menos).

Si su fábrica no está destinada a vivir cerca de su código de acceso a datos, los mantendría separados. Recuerde el Principio de responsabilidad única : los objetos solo deben tener Una razón para cambiar. Si la fábrica solo está rellenando objetos con datos, entonces ese es un uso apropiado, sin embargo, si está rellenando objetos con datos además de hacer otras cosas, entonces es mejor no agregar los datos.

Hay compensaciones en cualquier dirección, por lo que generalmente me gusta mantener los objetos lo más simples posible durante el mayor tiempo posible.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top