Ini adalah pertanyaan yang saya tanyakan beberapa waktu lalu di SO, tetapi mungkin bisa didiskusikan lebih baik di sini ...
Di mana saya bekerja, kami telah bolak-balik tentang hal ini beberapa kali dan mencari cek kewarasan. Inilah pertanyaannya: Haruskah Objek Bisnis menjadi wadah data (lebih seperti DTO ) atau haruskah mereka juga berisi logika yang dapat melakukan beberapa fungsi pada objek itu.
Contoh - Ambil objek pelanggan, mungkin berisi beberapa properti umum (Nama, Id, dll), haruskah objek pelanggan itu juga menyertakan fungsi (Simpan, Calc, dll.)?
Satu baris alasan mengatakan pisahkan objek dari fungsionalitas (prinsip tanggung jawab tunggal) dan letakkan fungsionalitas dalam lapisan atau objek Logika Bisnis.
Alur penalaran lainnya mengatakan, tidak, jika saya memiliki objek pelanggan, saya hanya ingin menelepon Pelanggan. Simpan dan selesaikan. Mengapa saya perlu tahu tentang kelas lain untuk menyelamatkan pelanggan jika saya mengkonsumsi objek?
Dua proyek terakhir kami memiliki objek yang terpisah dari fungsi, tetapi perdebatan telah dimunculkan lagi pada proyek baru.
Mana yang lebih masuk akal dan mengapa ??