Investigué un poco antes de publicar esta pregunta. Entre otras preguntas o publicaciones, una de ellas se proporciona a continuación. No pude tener una idea clara de cómo determinar ...
Business Objects dentro de una capa de acceso a datos
Tengo un repositorio y Business Layers llama al repositorio para recuperar los datos. Por ejemplo, supongamos que tengo las siguientes clases para BLL y DAL:
class BllCustomer
{
public int CustomerId {get; set;}
public String Name {get; set;}
public BllAddress Address {get; set;}
}
class BllAddress
{
public int AddressId {get; set;}
public String Street {get; set;}
public String City {get; set;}
public String ZipCode {get; set; }
}
class DalCustomer
{
public int CustomerId {get; set;}
public String Name {get; set;}
public int AddressID {get; set;}
}
class DalAddress
{
public int AddressId {get; set;}
public String Street {get; set;}
public String City {get; set;}
public String ZipCode {get; set; }
}
Si el BLL desea recuperar un objeto Cliente, llamaría a GetCustomerById (customerId) en DAL.
Las siguientes son mis preocupaciones, no pude tener una mente clara:
No puedo ver cómo determinar qué objeto debe devolver el GetCustomerById en DAL. ¿Debería devolver BllCustomer o DalCustomer?
¿Dónde debería estar la recuperación (y / o conversión a objeto comercial) de la dirección asociada con el cliente?
Si el DAL devuelve objetos Dal, entonces, la lógica para recuperar y completar la Dirección solo puede estar en el BLL. Si el DAL devuelve objetos BLL, entonces la lógica para recuperar y completar la Dirección puede estar en BLL o DAL. Actualmente, el DAL está devolviendo los Business Objects y la lógica para completarlo está en el DAL.
Por lo que leí, supongo que no hay correcto o incorrecto. Desde el enlace incluido anteriormente, hay personas que dicen de una manera y las otras dicen lo contrario. Pero, ¿cómo determino cuál funcionaría mejor para mi caso?
Cualquier ayuda sería apreciada.