يحتاج Android إلى نمط هندسة البرمجيات أثناء تطويره. MVC و MVP هما أنماط مستخدمة على نطاق واسع تمنح المطورين فرصة لوحدة ملفات المشروع وتضمن تغطية الأكواد.
هذا يجعل مهمة المطور سهلة.
الوجبات السريعة الرئيسية
- يفصل MVC (Model-View-Controller) بيانات التطبيق وواجهة المستخدم ومنطق التحكم إلى ثلاثة مكونات متميزة ، مما يعزز النمطية.
- يفصل MVP (Model-View-Presenter) أيضًا هذه المخاوف ولكنه يضيف مكون مقدم لإدارة الاتصال بين العرض والنموذج.
- يعد MVC أكثر ملاءمة للتطبيقات الأكبر مع تفاعلات المستخدم المعقدة ، بينما يعمل MVP جيدًا للمشاريع الصغيرة ذات الواجهات البسيطة.
MVC vs MVP
MVC هو نمط معماري يفصل التطبيق إلى ثلاثة مكونات رئيسية: النموذج ، وطريقة العرض ، ووحدة التحكم. يمثل النموذج بيانات التطبيق ومنطق الأعمال. MVP هو نمط معماري آخر مشابه لـ MVC ولكن مع بعض الاختلافات الرئيسية. لا يزال نموذج MVP يمثل بيانات التطبيق ومنطق الأعمال.
MVC عبارة عن بنية برمجية تحتوي على وحدات تحكم كنقطة دخول لها. يتم تنفيذ طبقة العرض كوحدة أو فئة واحدة.
جميع الطبقات الثلاث المعروضة منه مرتبطة ارتباطًا وثيقًا ؛ وبالتالي ، يمكن أن يكون إجراء أي تغييرات أمرًا معقدًا.
يمكننا القول أن نمط MVC ألهم نمط MVP. ومع ذلك ، فإن MVP هو ملف UI نمط العرض. هذا لا يصور الإجراء بأكمله ، لكنه يشرح بنية العرض.
تجعل طريقة العرض عناصر واجهة المستخدم ، وجميع عناصرها تبقى معًا بشكل فضفاض.
جدول المقارنة
معلمات المقارنة | MVC | MVP |
---|---|---|
معنى | يرمز MVC إلى Model-View-Controller. | MVP هي اختصار لعبارة Model-View-Presenter. |
نقطة الدخول | نقطة الدخول لهذا هي المراقب المالي. | نقطة الدخول لهذا هي View. |
عرض العلاقة ونموذجها | يتبع هذا التطبيق مبادئ معيارية بالإضافة إلى مبادئ المسؤولية الفردية. | هنا المنظر على علم بالمقدم. |
بعد وحدات | لا يتبع هذا التطبيق أي وحدات أو يلتزم بمبدأ المسؤولية الفردية. | يتبع هذا التطبيق مبادئ معيارية بالإضافة إلى مبادئ المسؤولية الفردية. |
تعديل | من الصعب إجراء تعديلات هنا. | هنا إجراء التغييرات وتعديل البيانات ليس معقدًا كثيرًا. |
ما هو MVC?
يشير نمط MVC إلى Model-View-Controller. الكود مقسم إلى هذه الأقسام الثلاثة. عندما ينشئ المطورون ملفًا لتطبيق ما ، فإنهم يحتاجون إلى اختيار إحدى الطبقات.
الطبقة الأولى ، النموذج ، مسؤولة عن تخزين بيانات التطبيق. ليس على علم بالواجهة على الإطلاق. يقوم النموذج بمهمة الاتصال بقاعدة البيانات وطبقات الشبكة.
العرض هو واجهة المستخدم أو طبقة واجهة المستخدم للتطبيق. يحتوي على المكونات التي تظهر على الشاشة. يتم توفير جميع البيانات المرئية المحفوظة في النموذج بواسطة طريقة العرض.
يمكن للمستخدمين التفاعل مع هذا. تم تطوير الطبقة الأخيرة ، وحدة التحكم ، لتوصيل النموذج والعرض. يقوم بجمع سلوك المستخدم ، وبناءً على ذلك ، يقوم بتحديث النموذج.
بعض النقاط السلبية لـ MVC تجعل المهمة صعبة في بعض الأحيان. هنا يرتبط العرض والنموذج ارتباطًا وثيقًا.
لذلك يمكن أن يكون لمتطلبات طريقة العرض تأثير على النموذج وتؤدي إلى تدهور منطق الأعمال. في الوقت نفسه ، يجعل هذا الارتباط الوثيق اختبار وحدة العرض أمرًا صعبًا.
ما هي تفاصيل MVP?
يشير نمط MVP إلى Model-View-مقدم. إنه إصدار أفضل من MVC ، وباستخدام MVP ، يمكن للمطور هيكلة أكواد المشروع التي تم تنفيذها بكفاءة.
تجعل خصائص MVP تحظى بشعبية كبيرة بين المطورين. قاعدة بيانات الشفرة النظيفة والتي يمكن صيانتها وإمكانية الاختبار تجعلها مفيدة للغاية.
كما أن لها ثلاثة مكونات. الأولى هي طبقة النموذج ، وهي مصممة لتخزين البيانات. يحافظ على قواعد منطق المجال ويتواصل مع طبقات قاعدة البيانات والشبكة.
الطبقة التالية ، عرض ، هي واجهة مستخدم هذا التطبيق. توفر هذه الطبقة جميع تصورات البيانات جنبًا إلى جنب مع تتبع الإجراءات التي يقوم بها المستخدم لإبلاغ مقدم العرض.
الطبقة الأخيرة هي مقدم العرض ، الذي يجلب البيانات من النموذج ، ويستخدم منطق واجهة المستخدم ، ثم يحدد ما يجب عرضه. يمكن للمستخدمين الإدخال في العرض ، وينظم MVP حالة العرض وفقًا لذلك.
ومع ذلك، MVP ليس خاليًا من جميع المشكلات. تتم إزالة وحدة التحكم الخاصة بـ MVP.
نتيجة لذلك ، للتعويض عن عدم وجود وحدة تحكم ، يجب على مقدم العرض التعامل مع التدفق. في النهاية ، يتمكن المقدم من تحديث النموذج وتقديمه.
الاختلافات الرئيسية بين MVC و MVP
- يرمز MVC إلى Model-View-Controller ، بينما يرمز MVP إلى Model-View-Presenter.
- نقطة دخول MVC هي Controller ، ولكن في حالة MVP ، تكون نقطة الدخول هي View.
- في تطبيق MVC ، لا يمتلك العرض أي معرفة فيما يتعلق بوحدة التحكم ، وعلى العكس من ذلك ، في MVP ، يتمتع العرض بإدراك جيد لمقدم العرض.
- في MVC ، ترتبط طبقات الكود ارتباطًا وثيقًا ، ولكن في MVP ، توجد طبقات الكود مرتبطة بشكل فضفاض.
- نظرًا لأن MVC يحمل طبقات رمز مرتبطة ارتباطًا وثيقًا ، فليس من السهل تعديل بياناته ، ولكن في حالة MVP ، من السهل إجراء تغييرات لأن طبقات الكود متصلة بشكل فضفاض.
- لا تلتزم شركة MVC بمبدأ المسؤولية الفردية ، لكن MVP تتبعها.
- https://ieeexplore.ieee.org/abstract/document/5567323/
- https://research.tue.nl/files/48628529/Lou_2016.pdf
آخر تحديث: 11 يونيو 2023
سانديب بهانداري حاصل على بكالوريوس هندسة في الحاسبات من جامعة ثابار (2006). لديه 20 عامًا من الخبرة في مجال التكنولوجيا. لديه اهتمام كبير في المجالات التقنية المختلفة ، بما في ذلك أنظمة قواعد البيانات وشبكات الكمبيوتر والبرمجة. يمكنك قراءة المزيد عنه على موقعه صفحة بيو.
مجد للكاتب لكسر تعقيدات MVC وMVP بطريقة سهلة الهضم.
لا يمكن أن نتفق أكثر! كان جدول MVC مقابل MVP مفيدًا بشكل خاص في فهم الفروق الدقيقة بين الاثنين. عمل ممتاز.
تمكنت المقالة من تسهيل الوصول إلى الجوانب التقنية الأكثر تعقيدًا لهندسة البرمجيات. مجد للمؤلف.
كان تقسيم MVC وMVP شاملاً وجذابًا. قطعة تستحق الثناء للغاية من العمل.
وكان هذا بالمعلومات بشكل لا يصدق. لم أكن أعلم أبدًا أن الاختلافات بين MVC وMVP كانت واضحة ومتميزة إلى هذا الحد. سأكون متأكدًا من تطبيق هذه المبادئ في هندسة البرامج الخاصة بي من الآن فصاعدا.
من الرائع أن ترى استكشافًا تفصيليًا لكل من MVC وMVP، مع تسليط الضوء على فوائدهما وعيوبهما. قطعة مدروسة بشكل جيد عموما.
من المؤسف أن الارتباط الوثيق بين طرق العرض والنماذج لنمط MVC يجعل اختبار الوحدة أمرًا صعبًا، خاصة بالنسبة للتطبيقات الأكثر تعقيدًا. تعمل أداة التوصيل السائبة الخاصة بـ MVP على حل هذه المشكلة بشكل فعال.
من المنعش أن نرى مناقشة ثاقبة حول أنماط هندسة البرمجيات. كانت المقارنة بين MVC وMVP مفيدة.
أنا أتفق تماما. تسمح بنية MVP بإجراء اختبارات واستكشاف الأخطاء وإصلاحها بشكل أكثر كفاءة.
أنا لا أوافق بكل احترام على كون MVC أكثر ملاءمة للتطبيقات الأكبر حجمًا. يمكن أن تكون مرونة تصميم MVP مفيدة للمشاريع الأكبر حجمًا أيضًا.