Cara Model Harus Distrukturkan dalam MVC
Dalam rangka kerja Model-View-Controller (MVC), komponen model sering menimbulkan persoalan tentang struktur dan tanggungjawabnya yang sesuai. Untuk menangani kebimbangan ini, mari kita terokai sifat dan tujuan model dalam MVC.
Apa Itu Bukan Model
-
Bukan kelas atau objek tunggal: Model itu bukan kelas atau objek tertentu. Ia mewakili lapisan yang terdiri daripada pelbagai struktur.
-
Bukan ORM atau abstraksi pangkalan data: Model ini bukan sekadar pemetaan hubungan objek (ORM) atau lapisan abstraksi pangkalan data.
Apa Itu Model
Dalam MVC, lapisan model terdiri daripada tiga utama struktur:
-
Objek Domain: Bekas logik maklumat khusus domain, merangkum logik dan peraturan perniagaan.
-
Pemeta Data: Bertanggungjawab untuk menguruskan penyimpanan dan mendapatkan semula data, seperti berinteraksi dengan a pangkalan data.
-
Perkhidmatan: Memudahkan komunikasi antara objek domain dan pemeta data, menyediakan antara muka peringkat lebih tinggi kepada logik perniagaan.
Berinteraksi dengan Model
Untuk menggunakan lapisan model, komponen antara muka pengguna (UI) (pandangan dan pengawal) boleh memanfaatkan suntikan pergantungan teknik untuk mengakses perkhidmatan yang diperlukan.
Mengubah Keadaan Model
Pengawal berfungsi sebagai perantara, menerima input pengguna dan memulakan perubahan kepada keadaan model melalui kaedah perkhidmatan.
Membentangkan Keadaan Model
Pandangan bertanggungjawab untuk memaparkan keadaan semasa model kepada pengguna.
Membina Model
Daripada menumpukan pada mencipta kelas "Model" monolitik, MVC memerlukan pembinaan perkhidmatan, objek domain dan pemeta data.
Tambahan Pemerhatian
-
Jadual pangkalan data dan model: Model struktur tidak semestinya sepadan terus dengan jadual pangkalan data.
-
Paparan dan templat: Pandangan mengendalikan logik pembentangan, bukan sekadar memaparkan templat.
-
Hubungan antara pandangan dan pengawal : MVC membayangkan hubungan 1:1 antara paparan dan pengawal, setiap pasangan menguruskan halaman tertentu atau kefungsian.
Atas ialah kandungan terperinci Bagaimanakah Model Perlu Distrukturkan dalam Rangka Kerja MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!