Saya melakukan riset sebelum memposting pertanyaan ini. Di antara pertanyaan atau posting lainnya, salah satunya disediakan di bawah ini. Saya tidak bisa mendapatkan pikiran yang jernih bagaimana menentukan ..
Objek Bisnis dalam Lapisan Akses Data
Saya memiliki Repositori dan Business Layers memanggil repositori untuk mengambil data. Misalnya, katakan saya memiliki kelas berikut untuk BLL dan 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; }
}
Jika BLL ingin mengambil objek Pelanggan, itu akan memanggil GetCustomerById (customerId) di DAL.
Berikut ini adalah kekhawatiran saya, saya tidak bisa mendapatkan pikiran yang jernih:
Saya tidak bisa melihat cara menentukan objek yang harus dikembalikan oleh GetCustomerById di DAL? Haruskah mengembalikan BllCustomer atau DalCustomer?
Di mana seharusnya mengambil (dan / atau mengonversi ke objek Bisnis) dari alamat yang terkait dengan pelanggan?
Jika DAL mengembalikan objek Dal maka, logika untuk mengambil dan mengisi Alamat hanya bisa di BLL. Jika DAL mengembalikan objek BLL, maka logika untuk mengambil dan mengisi Alamat dapat berupa BLL atau DAL. Saat ini DAL mengembalikan Objek Bisnis dan logika untuk mengisinya adalah dalam DAL.
Dari apa yang saya baca, saya kira tidak ada benar atau salah. Dari tautan yang disertakan di atas, ada orang yang mengatakan satu arah dan yang lain mengatakan sebaliknya. Tetapi bagaimana saya menentukan mana yang paling cocok untuk kasus saya?
Bantuan apa pun akan dihargai.