Memahami Struktur Model dalam MVC
Bertentangan dengan salah tanggapan biasa, model dalam MVC ialah lapisan, bukan satu kelas atau objek. Lapisan ini terdiri daripada tiga struktur utama:
1. Objek Domain
- Mewakili entiti logik dalam domain masalah
- Tentukan logik perniagaan untuk mengesahkan, pengkomputeran, dsb.
- Tidak mementingkan storan
2. Pemeta Data
- Bertanggungjawab untuk kegigihan
- Boleh berinteraksi dengan pangkalan data, fail XML atau mekanisme storan lain
- Memberikan abstraksi pada lapisan storan fizikal
3. Perkhidmatan
- Sediakan antara muka peringkat lebih tinggi kepada logik perniagaan domain
- Boleh berinteraksi dengan kedua-dua objek domain dan pemeta data
- Boleh merangkum logik dan interaksi biasa , mengurangkan kerumitan dalam pengawal
Mengakses Model
Pengawal dan pandangan harus mengakses perkhidmatan model melalui suntikan pergantungan atau kilang untuk memastikan gandingan longgar dan kebolehujian.
Berinteraksi dengan Model
- Pengawal mendapatkan input pengguna dan mengubah keadaan model berdasarkan ia.
- Pengawal tidak seharusnya mengesahkan input atau melakukan pertanyaan pangkalan data.
- Paparan memaparkan keadaan model semasa kepada pengguna.
Membina Model
Fokus pada mencipta perkhidmatan individu yang melaksanakan fungsi tertentu, dan bukannya cuba membina satu kelas "Model". Kemudian, cipta objek domain dan pemeta data seperti yang diperlukan.
Pertimbangan Tambahan
-
Jadual Pangkalan Data dan Model: Hubungan antara pangkalan data jadual dan komponen model mungkin tidak 1:1:1 semuanya kes.
-
Paparan bukan Templat: Pandangan bertanggungjawab ke atas logik pembentangan, menggunakan templat untuk memasang kandungan berdasarkan data yang diperoleh daripada model.
-
Paparan- Hubungan Pengawal: Dalam pembangunan web, biasanya lebih disukai untuk mempunyai hubungan 1:1 antara paparan dan pengawal, dengan setiap pengawal mengendalikan permintaan untuk halaman tertentu.
Atas ialah kandungan terperinci Apakah Tiga Struktur Utama Lapisan Model dalam MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn