Ahmed Aljaberi
Ahmed Aljaberi

@ahmed_aljabri

8 تغريدة 56 قراءة Sep 24, 2019
الMVP كان تطوراً للMVC , لو لاحظنا في الMVC كان هناك ارتباط مباشر بين الModel و الView . ارتباط كهذا يجعلنا كلما فكرنا في تغيير اي شي في بيانات الView فإن علينا التفكير ايضا في ما علينا ان نغيره في الModel. ( سلسلة )
كما ان هناك فرق مهم و هو ان الModel في الMVC هو عبارة عن البيانات اللازمة لنعرضها في الView لكن في الMVP فالModel يمثل الBusiness Logic و البيانات.
ايضاً الModel في الMVP قد يكون مكون من عدة Layers مثل الServices و الEntities و الRepository.
في الMVC كانت وظيفة الController هو تلقي ما يقوم به المستخدم و معالجته ثم تكوين Model جديدة و ارسالها مرة اخرى له عبر الView. لكن في الMVP لا يوجد Controller و انما Presenter.
الPresenter مشابه للكنترولر في استقبال الأحداث من المستخدم لكن بدل ان يعالجها سواء بنفسه او باستخدام Business Logic ثم يكون Model فإينه يقوم مباشرة بتغيير الView من دون ان يرسل له Model.
ربما من السهل التمثيل ببرنامج Desktop يمكن الوصول إلى عناصر Form معين مثل TextBox او Button و تغيير الProperties لها. او كما هو الحال في برمجة Android او iOS من خلال جافا و Objective-C او Xamarin أو Flutter. لكن قد لاتكون الأفضل.
بالنسبة لتطبيقات الويب كان من السهل تطبيقه بتقنية مثل ASP.NET Forms و ليس ASP.NET MVC و هناك من حاول تطبيقها مع JavaScript Frameworks مثل Angular!.
الMVC ظهرت في السبعينات عبر لغة SmallTalk و الMVP ظهرت في اول التسعينات مع لغة ++C , في السلسلة القادمة ساتحدث عن MVVM من مايكروسوفت.

جاري تحميل الاقتراحات...