ماهو مبدأ Model View Controller (MVC) ؟ (للمبتدئين)

marwaalgethamiمنذ 6 سنوات

ماهو ال Model View Controller (MVC)؟

 

MVC هو مبدأ او نموذج معماري architectural pattern يستخدم للتعامل مع واجهات المستخدم في تطبيقات iOS.
هذا المبدا مهم ان تحاول فهمه لانه اساس برمجة تطبيقات ال iOS . فعندما تبدأ برمجه مشروعك عليك تقسيمه الى ثلاثة اقسام كالتالي

Model : عباره عن مجموعة البيانات أو data في تطبيقك . مثلا لو لدينا تطبيق لعرض موديلات السيارات.  كل المعلومات عن السياره مثل الماركه, اللون وغيرها تعتبر بيانات ويتم تخزينها في كلاس.

View : عباره عن الواجهه الظاهره لمستخدم تطبيقك.
في xcode تعتبر  ال view هي العناصر المستخدمه في  storyboard  واللتي نقوم بربطها بالكود مثل UILabel, UIView and UIImage.

Controller : هو الرابط  او حلقة الوصل بين ال model & view اي بين البيانات والواجهات . فهو يقوم بتزويد ال  view  بالبيانات اللتي تحتاجها من model. ويقوم بتحديث ال model حين يدخل  المستخدم بيانات جديده الى ال view
هذا الجزء يعتبر الدوال او method او ال action المستخدمه في برمجه العناصر كالازرار مثلا.

 

الان نستعرض مثال بسيط لشرح الفكره وتعميق فهمها.( من هنا تستطيع البدء والبحث عن المزيد عن هذا المفهوم وتطبيقه).

لنفرض ان لدينا مشروع  يستعرض ماركة و لون السياره . الان وفقا لهذا المفهوم سنقسم كالتالي
  Model: ننشئ class  نسميه car ونضع فيه بيانات السياره (ماركه brand, لون  color).

598867bbc9250_ScreenShot1438-11-15at3_35_05PM.png.7f701e3eb5716cb7540257cc58694c4c.png

View: هي واجهة المستخدم سننشئها كالتالي:

598867c535a4b_ScreenShot1438-11-15at3_56_39PM.png.8d95ca23d0aaecc2e44910d8eb60e213.png

 

وننشئ outlet لكل من ال labels كالتالي

598867bfd8492_ScreenShot1438-11-15at3_35_21PM.png.6683fc977aa49ee8d2f100ff0fb3c6cf.png

 

Controller: وهي الاوامر المستخدمه لربط عناصر الواجهه بالبيانات.
- انشأنا object  اسمه car1 من كلاس car حتى نتمكن من الوصول الى خصائص الكلاس (الماركه و اللون ).
- باستخدام ال object المسمى car1 وصلنا الى خاصية brand ووضعنا فيها قيمه lexus . وخاصية color وضعنا فيها قيمه Red
- الان مرحله الربط بين  عناصر الواجهه والبيانات فالامر Brand.text يشير الى ان نضع في ال label الموجود في الواجهه  النص الموجود في خاصية Car1.Brand وهو في هذه الحاله lexus. نفس الامر لعنصر اللون.  

 

598867c31d7c5_ScreenShot1438-11-15at3_41_28PM.png.2bdac39de2cd1b91be10d23b3838afc4.png

 

الشكل النهائي للكود في الصوره التاليه لكن هناك ملاحظه يفضل أن تنشئ ملف سويفت منفصل لتضع فيه كلاسات ال model .

598867cc20687_ScreenShot1438-11-15at3_41_07PM.png.aa961b21d364a1f8ecd0af75aae6679c.png

 

الان نقوم بتشغيل التطبيق لرؤيه النتيجه

 

598867c7ba475_ScreenShot1438-11-15at3_42_06PM.png.4138d57a5f0074aa29e1a5a6aefd1365.png

 

اتمنى أنني وفقت في شرح هذا المفهوم المهم بطريقه سهله وبسيطه ـ شكرا لكم ولعالم البرمجه :)

 

 

كلمات دليلية:
3
إعجاب
27641
مشاهدات
0
مشاركة
1
متابع
متميز
محتوى رهيب

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !