Я зробив кілька досліджень, перш ніж розміщувати це питання. Серед інших запитань чи публікацій, одне із них подано нижче. Я не міг зрозуміти, як визначити ..
Бізнес-об'єкти в рівні доступу до даних
У мене є сховище, і бізнес-шари викликають сховище для отримання даних. Наприклад, скажіть, що у мене є такі класи для BLL та 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; }
}
Якщо BLL хоче отримати об’єкт Customer, він зателефонує GetCustomerById (customerId) у DAL.
Наступні мої проблеми, я не міг зрозуміти:
Я не можу зрозуміти, як визначити, який об’єкт повинен повернути GetCustomerById в DAL? Чи повинен повернути BllCustomer або DalCustomer?
Де слід знаходити (та / або перетворювати на об’єкт Бізнес) адресу, пов’язану із замовником?
Якщо DAL повертає об'єкти Dal, то логіка для отримання та заповнення адреси може бути лише в BLL. Якщо DAL повертає об'єкти BLL, то логіка для отримання та заповнення адреси може бути або в BLL, або в DAL. Наразі DAL повертає бізнес-об'єкти, і логіка заповнення його є в DAL.
З того, що я прочитав, я здогадуюсь, що немає правильного чи неправильного. Із наведеного вище посилання є люди, які говорять в одну сторону, а інші говорять по-іншому. Але як визначити, що найкраще підходить для мого випадку?
Будь-яка допомога буде вдячна.