Saya mengajukan pertanyaan ini karena setelah mengembangkan beberapa solusi cms khusus kecil dalam suatu kerangka kerja, saya mengembangkan gagasan bahwa Model dapat dengan mudah diganti dengan ORM yang memudahkan tugas memvalidasi, mendapatkan dan mengatur data, karena hanya itulah yang dibutuhkan untuk .
Baru-baru ini saya mendapat pesanan untuk solusi manajemen klien kustom yang kompleks. Setelah meneliti sedikit tentang bagaimana melanjutkannya, saya menemukan ini:
http://blog.astrumfutura.com/2008/12/the-m-in-mvc-why-models-are-misunderstood-and-unappreciated/
Sekarang idenya bukan hal baru seperti yang saya baca tentang pendekatan MVC, model menangani logika bisnis. Tetapi saya merasa sulit untuk merencanakan pendekatan di mana Model menangani logika bisnis dan kelas yang lengkap dalam diri mereka sendiri karena jenis pekerjaan yang saya sudah terbiasa.
Tolong bantu saya di sini dengan menjelaskan ide dan menunjuk saya ke beberapa contoh, artikel dll
sumber
Jawaban:
Anda harus membaca lebih lanjut tentang Desain Berbasis Domain . Pada dasarnya Anda mencoba menangkap persyaratan bisnis menjadi model murni (sebagian besar model objek) yang dapat melakukan semua tugas logis bisnis yang diperlukan. Model ini kemudian dapat dipanggil dari lapisan aplikasi (misalnya tampilan atau pengontrol di MVC, di MVP Anda menyebutnya dan sesuaikan untuk GUI dalam Presenter). Model ini juga harus mengabaikan ketekunan dan hal-hal teknis lainnya.
Enkapsulasi logika bisnis dalam model domain seperti itu memiliki beberapa keuntungan besar:
Saya merekomendasikan buku Eric Evan tentang Desain Domain Driven untuk bacaan lebih lanjut, karena akan mengarahkan Anda ke arah yang benar dan memberi Anda beberapa contoh yang baik tentang di mana harus meletakkan logika mana. Saya bertaruh bahwa pada saat Anda membacanya, sebagian besar entitas Anda akan berisi lebih dari data flat .
Saya berasumsi, bahwa dengan model Anda sebagian besar mengacu pada entitas dalam konteks ini. Menempatkan logika / perilaku bisnis dalam entitas bukanlah tugas yang sepele. Tapi Anda harus selalu berpikir tentang apa entitas adalah dan apa entitas tidak . Apakah ada beberapa tanggung jawab atau perilaku? Terkadang tidak masalah untuk memiliki entitas tetap jika perilaku atau tanggung jawab dinyatakan lebih baik sebagai layanan.
Misalkan Anda memiliki binatang. Sementara atributnya dapat disimpan secara datar ke database, ia memiliki beberapa perilaku juga. Perlu makan. Tetapi, herbivora tidak akan makan daging, jadi Anda harus memastikannya akan menunjukkan perilakunya ketika programmer ingin memakan daging dengan paksa. Itu bisa bergerak dan bisa membuat suara uniknya sendiri. Ini adalah beberapa hal yang harus dimodelkan menjadi entitas misalnya. Anda yakin tidak akan bergantung pada layanan prosedural untuk membuat hewan-hewan itu makan, bergerak atau membuat suara mereka.
Tetapi semua contoh dangkal tanpa domain bisnis yang konkret. Jadi pikirkan tentang domain bisnis Anda dan tentang entitas, perilaku, dan tanggung jawabnya. Domain bisnis lain mungkin berisi entitas yang mirip dengan orang luar, tetapi memang sesuatu yang sama sekali berbeda atau menunjukkan perilaku yang sama sekali berbeda. Model ini harus menggambarkan domain penggunanya seakurat mungkin dan terutama.
sumber