Eu fiz algumas pesquisas antes de postar esta pergunta. Entre outras perguntas ou postagem, uma delas é fornecida abaixo. Eu não conseguia ter uma mente clara como determinar ..
Objetos de negócios em uma camada de acesso a dados
Eu tenho um repositório e as camadas de negócios chamam o repositório para recuperar os dados. Por exemplo, digamos que eu tenha as seguintes classes para BLL e 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; }
}
Se o BLL quiser recuperar um objeto Customer, ele chamaria GetCustomerById (customerId) no DAL.
A seguir, minhas preocupações: não conseguia ter uma mente clara:
Não consigo ver como determinar qual objeto o GetCustomerById no DAL deve retornar? Ele deve retornar BllCustomer ou DalCustomer?
Onde deve estar a recuperação (e / ou a conversão para objeto de negócios) do endereço associado ao cliente?
Se o DAL retornar objetos Dal, a lógica para recuperar e preencher o Endereço poderá estar apenas no BLL. Se o DAL retornar objetos BLL, a lógica para recuperar e preencher o Endereço poderá estar no BLL ou no DAL. Atualmente, o DAL está retornando os Objetos de Negócios e a lógica para preenchê-lo está no DAL.
Pelo que li, acho que não há certo ou errado. No link incluído acima, há pessoas dizendo uma maneira e as outras estão dizendo a outra maneira. Mas como determino qual funcionaria melhor para o meu caso?
Qualquer ajuda seria apreciada.