مفهوم MVC أو (Model-View-Controller) الذي يرافق أغلب الأطر البرمجية.
هل هناك طريقة مبسطة لفهمه ؟
بالتأكيد تعرف جملة الطباعة الموجودة في أي لغة برمجة بهذا الشكل
name="ahmed"
print("Hello %s", name)
عند تحليل هذه الجملة ستجدها مكونة من ثلاث أشياء هي:
1- "Hello %s" هذا الجزء هو ما سيظهر أمام المستخدم بالطبع بعد تغيير %s ل ahmed. هذا الجزء المرئي يسمي view وهو القالب لما سيظهر. في حالة جملة الطباعة السابقة فهذا القالب بسيط جدا فلا توجد مشكلة عند كتابته بداخل الكود ولكن في المواقع نحتاج إلي قوالب معقدة أكثر لهذا نضع القوالب في ملفات خارجية لنفرض علي سبيل المثال قالب للصفحة الرئيسة للموقع يسمي index.html عبارة عن
<html>
<head></head>
<body>
<h1> Hello %s </h1>
</body>
</html>
ونكتب جملة الطباعة مرة أخرى بهذا الشكل
printfile("index.html", name)
بدون ذلك كنا سنضطر لكتابة كل شئ داخل الكود مثل
print("<html><head></head><body><h1> Hello %s </h1> </body></html>", name)
وهذا كان سيجعل فهم الكود وإصلاح الأخطاء أصعب بكثير بالإضافة إلى عدم قابلية إعادة الاستخدام
2- الجزء الثاني وهو name هذا الجزء هو ال model وهو البيانات أو المعلومات التي تريد عرضها داخل القالب للمستخدم مرة أخرى هذا ال model بسيط جدا مجرد string ماذا لو أردنا كتابة كل معلومات المستخدم مثل الأسم والسن ووو
يمكن ذلك عن طريق عمل class تحمل معلومات المستخدم
Class Person{
String name;
Int age;
}
ونعيد كتابة جملة الطباعة لتصبح
print("Hello %s, your age is %s", person.name,person.age)
كما تري فهي جملة طباعة واحدة فقط لكن يمكنها طباعة عدد لا نهائ من المستخدمين
3- الجزء الثالث وهي دالة الطباعة ذات نفسها print وتسمي ال controller لأنها تتحكم في شكل ال view النهائي وفي حالة التطبيق الفعلي لل mvc فهي قادرة أيضا على التحكم وتعديل بيانات الmodel
إذا ال mvc ماهي الا طريقة لتقسيم الكود إلي قوالب مرئية views - بيانات models - كود لربط القوالب بالبيانات controllers
التعليقات