كما ان هناك فرق مهم و هو ان ال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. لكن قد لاتكون الأفضل.
الMVC ظهرت في السبعينات عبر لغة SmallTalk و الMVP ظهرت في اول التسعينات مع لغة ++C , في السلسلة القادمة ساتحدث عن MVVM من مايكروسوفت.
جاري تحميل الاقتراحات...