Ho fatto qualche ricerca prima di pubblicare questa domanda. Tra le altre domande o posta, una di queste è fornita di seguito. Non riuscivo a capire come determinare ...
Business Objects all'interno di un livello di accesso ai dati
Ho un repository e Business Layers chiamano il repository per recuperare i dati. Ad esempio, supponiamo di avere le seguenti classi per 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 il BLL vuole recuperare un oggetto Cliente, chiamerà GetCustomerById (customerId) in DAL.
Le seguenti sono le mie preoccupazioni Non ho potuto avere una mente chiara:
-
Non riesco a vedere come determinare quale oggetto deve essere restituito da GetCustomerById in DAL? Dovrebbe restituire BllCustomer o DalCustomer?
-
Dove dovrebbe essere il recupero (e / o la conversione in oggetto Business) dell'indirizzo associato al cliente?
Se il DAL restituisce gli oggetti Dal, la logica per recuperare e compilare l'indirizzo può essere solo nella BLL. Se il DAL restituisce oggetti BLL, la logica per recuperare e compilare l'indirizzo può essere nel BLL o nel DAL. Attualmente il DAL restituisce i Business Objects e la logica per riempirla è nel DAL.
Da quello che ho letto, immagino che non ci sia giusto o sbagliato. Dal link incluso sopra, ci sono persone che dicono in un modo e gli altri stanno dicendo nell'altro modo. Ma come faccio a determinare quale potrebbe funzionare meglio per il mio caso?
Qualsiasi aiuto sarebbe apprezzato.