كيف ينبغي بناء النموذج في MVC؟
في MVC، يمثل النموذج منطق الأعمال وبيانات التطبيق. فهو يشمل المنطق والقواعد الخاصة بالمجال، مما يمكّن التطبيق من أداء المهام واتخاذ القرارات دون الاعتماد على واجهة المستخدم أو وحدة التحكم.
مفهوم النموذج:
فصل الاهتمامات:
- طبقة النموذج منفصلة عن طبقة واجهة المستخدم (العرض ووحدة التحكم) .
- يتم الاتصال بالنموذج فقط من خلال الخدمات، مما يضمن الفصل الواضح بين الاهتمامات ومنع تسرب منطق المجال إلى واجهة المستخدم أو وحدة التحكم. كود.
- يعزز هذا الفصل مبدأ المسؤولية الفردية (SRP)، والمرونة، وسهولة الاختبار.
الوصول إلى النموذج:
- في طرق العرض ووحدات التحكم، يمكنك الوصول إلى خدمات النموذج من خلال حقن التبعية باستخدام أطر عمل مثل حاوية DI الخاصة بـ Symfony أو Auryn.
- يمكن حقن الخدمات في المنشئين أو الوصول إليها من خلال المصنع.
- يضمن هذا النهج توفر جميع الخدمات الضرورية لهذه المكونات.
تعديل حالة النموذج:
- المتحكمون مسؤولون عن التعامل مع مدخلات المستخدم وتعديل النموذج الحالة.
- يستدعون أساليب الخدمة، والتي بدورها تتفاعل مع كائنات المجال ومخططي البيانات لتنفيذ العمليات المنطقية اللازمة.
استمرارية البيانات:
- تمثل كائنات المجال كيانات تجارية ولكنها ليست على علم بالتخزين.
- يتعامل مخططو البيانات مع استمرارية البيانات واسترجاعها من الجهات الخارجية التخزين.
- يسمح هذا الفصل لمنطق الأعمال بالبقاء مستقلاً عن تقنية التخزين المحددة المستخدمة.
فوائد الفصل:
- يفرض SRP من خلال تعيين مسؤوليات واضحة لكل طبقة.
- يحسن إمكانية قراءة التعليمات البرمجية وقابلية الاختبار عن طريق عزل الأعمال المنطق.
- يوفر المرونة في تعديل منطق الأعمال أو تخزين البيانات دون التأثير على المكونات الأخرى.
- يبسط تطوير واجهات برمجة التطبيقات الخارجية من خلال توفير واجهة متسقة للوصول إلى الخدمات النموذجية.
تعليقات إضافية:
- لا يتم دائمًا تعيين جداول قاعدة البيانات مباشرة إلى كائنات وبيانات المجال مصممو الخرائط.
- طرق العرض ليست قوالب ولكنها تتعامل مع منطق العرض واختيار القالب.
- يجب أن تكون هناك علاقة 1:1 بين طرق العرض ووحدات التحكم لكل صفحة أو شاشة.