كيفية تنفيذ هندسة MVC في جافا؟



ستساعدك هذه المقالة حول MVC Architecture في Java على فهم نمط تصميم MVC بالضبط وكيف يجعل تصميم تطبيقات الويب أمرًا سهلاً.

في مجال تطوير الويب ، Model-View-Controllerهي واحدة من أكثر ما يتم الحديث عنه في عالم برمجة الويب اليوم. تم تضمين MVC Architecture في البداية في إطاري تطوير الويب الرئيسيين - Struts و روبي على القضبان . في هذه المقالة ، دعنا نستكشف قليلاً عن MVC Architecture في .

الموضوعات التي سيتم تناولها في هذه المقالة هي كما يلي:





قبل أن نبدأ في الواقع gوإلى جانب تقنيات MVC Architecture ، هناك مفاهيم معينة تحتاج إلى معرفتها.

  • نمط التصميم ، في هندسة البرمجيات ، هي تقنية لحل مشكلة شائعة عند تصميم البرامج.
  • نموذج التصميم يحدد نوع العمارة التي تستخدمها لحل المشكلة أو تصميم النموذج.
  • هنالك اثنان أنواع نماذج التصميم : نموذج 1 العمارة و العمارة النموذجية 2 (MVC).

ما هي هندسة MVC في جافا؟

تصميمات النماذج القائمة على هندسة MVC تتبع MVC ويفصلون منطق التطبيق عن واجهة المستخدم عند تصميم البرنامج. كما يوحي الاسم ، فإن نمط MVC له ثلاث طبقات ، وهي:



  • نموذج - يمثل طبقة الأعمال الخاصة بالتطبيق
  • رأي - يحدد طريقة عرض التطبيق
  • مراقب - يدير تدفق التطبيق

MVC - MVC Architecture في Java - Edureka

في سياق برمجة Java ،يتكون النموذج من بسيط فئات جافا ، يعرض العرض البيانات وتتكون وحدة التحكم من . يؤدي هذا الفصل إلى معالجة طلبات المستخدم على النحو التالي:



  1. يرسل المستعرض الموجود على العميل طلبًا لصفحة إلى وحدة التحكم الموجودة على الخادم
  2. تقوم وحدة التحكم بإجراء استدعاء النموذج ، وبالتالي استرداد البيانات التي تحتاجها استجابة للطلب
  3. ثم تعطي وحدة التحكم البيانات المستردة للعرض
  4. يتم تقديم العرض وإرساله مرة أخرى إلى العميل لعرضه في المتصفح

فصل تطبيق البرنامج إلىهذه المكونات الثلاثة المتميزة فكرة جيدة لعدد من الأسباب. دعونا نلقي نظرة على ماهية هؤلاء.

مزايا MVC Architecture في Java

تقدم بنية MVC الكثير من المزايا للمبرمج عند تطوير التطبيقات ، والتي تشمل:

  • يمكن للمطورين المتعددين العمل مع الطبقات الثلاث (النموذج والعرض والتحكم) في وقت واحد
  • تحسن العروض قابلية التوسع ، يكمل قدرة التطبيق على النمو
  • نظرًا لأن المكونات لها اعتماد منخفض على بعضها البعض ، فمن السهل صيانتها
  • يمكن إعادة استخدام النموذج من خلال طرق عرض متعددة توفر إمكانية إعادة استخدام الكود
  • اعتماد MVC يجعل التطبيق أكثر تعبيرًا وسهل الفهم
  • يصبح من السهل تمديد واختبار التطبيق

أنت تعرف الآن سبب كون MVC هو الأكثر شهرة في عالم برمجة الويب. ولكن ، إذا كنت لا تزال تكافح من أجل فهم مفهوم MVC ، فلا تقلق. سوف نتعمق في كل طبقة من هذه الطبقات ونتعلم الغرض منها بمساعدة ملف .

تنفيذ MVC باستخدام Java

لتنفيذ تطبيق ويب يعتمد على نمط تصميم MVC ، سننشئ

  • فئة الدورة ، الذي يعمل كملف طبقة النموذج
  • فئة CourseView ، والتي تحدد طبقة العرض ( طبقة العرض )
  • فئة CourseContoller ، الذي يعمل كملف مراقب

الآن ، دعنا نستكشف هذه الطبقات واحدة تلو الأخرى.

طبقة النموذج

في نمط تصميم MVC ، فإن ملف نموذج هي طبقة البيانات التي تحدد منطق الأعمال للنظام وتمثل أيضًا حالة التطبيق.الموديل شاء استرداد حالة النموذج وتخزينها في قاعدة بيانات. من خلال هذه الطبقة ، نطبق القواعد على البيانات ، والتي تمثل في النهاية المفاهيم التي يديرها تطبيقنا. الآن ، لنقم بإنشاء نموذج باستخدام فئة الدورة.

ما هو مترجم جيت في جافا
package MyPackage public class الدورة {private String CourseName الخاص String CourseId private String CourseCategory public String getId () {return CourseId} public void setId (String id) {this.CourseId = id} public String getName () {return CourseName} public void setName (اسم السلسلة) {this.CourseName = name} public String getCategory () {return CourseCategory} public void setCategory (String category) {this.CourseCategory = category}}

الكود سهل الفهم ولا يحتاج إلى شرح. وهو يتألف من وظائف للحصول على / تعيين تفاصيل الدورة.

طبقة العرض

تمثل هذه الطبقة من نمط تصميم MVC ناتج التطبيق أو واجهة المستخدم. يعرض البيانات التي تم جلبها من طبقة النموذج بواسطة وحدة التحكم ويقدم البيانات للمستخدم متى طلب ذلك. أنايتلقى t جميع المعلومات التي يحتاجها من وحدة التحكم ولا تحتاج إلى التفاعل مع طبقة الأعمال مباشرة.فلنقم بإنشاء عرض باستخدام فئة CourseView.

package MyPackage public class CourseView {public void printCourseDetails (String CourseName، String CourseId، String CourseCategory) {System.out.println ('Course Details:') System.out.println ('Name:' + CourseName) System.out.println ('معرف الدورة التدريبية:' + CourseId) System.out.println ('فئة الدورة التدريبية:' + CourseCategory)}}

هذا الرمز هوببساطة لطباعة القيم إلى وحدة التحكم. بعد ذلك ، لدينا وحدة التحكم في تطبيق الويب.

طبقة التحكم

تعتبر وحدة التحكم بمثابة واجهة بين النموذج والعرض. يتلقى طلبات المستخدم من طبقة العرض ويعالجها ، بما في ذلك عمليات التحقق اللازمة. ثم يتم إرسال الطلبات إلى النموذج لمعالجة البيانات. بمجرد معالجتها ، يتم إرسال البيانات مرة أخرى إلى وحدة التحكم ثم عرضها في العرض.فلنبدع فئة CourseContoller الذي يعمل كوحدة تحكم.

package MyPackage public class CourseController {private Course model private CourseView view public CourseController (نموذج الدورة ، طريقة عرض CourseView) {this.model = model this.view = view} public void setCourseName (String name) {model.setName (name)} public String getCourseName () {return model.getName ()} public void setCourseId (String id) {model.setId (id)} public String getCourseId () {return model.getId ()} public void setCourseCategory (String category) {model.setCategory (category)} public String getCourseCategory () {return model.getCategory ()} public void updateView () {view.printCourseDetails (model.getName ()، model.getId ()، model.getCategory ())}}

ستخبرنا نظرة خاطفة على الكود أن فئة وحدة التحكم هذه مسؤولة فقط عن استدعاء النموذج للحصول على / تعيين البيانات وتحديث العرض بناءً على ذلك. دعنا الآنإلقاء نظرة على كيفية ربط كل هؤلاء معًا.

فئة جافا الرئيسية

دعونا نطلق على هذه الفئة 'MVCPatternDemo.java'. تحقق من الكود أدناه.

package MyPackage public class MVCPatternDemo {public static void main (String [] args) {// جلب سجل الطالب بناءً على سجله رقم من قاعدة البيانات Course model = retriveCourseFromDatabase () // إنشاء طريقة عرض: لكتابة تفاصيل الدورة التدريبية على عرض وحدة التحكم CourseView = new CourseView () CourseController controller = new CourseController (model، view) controller.updateView () // تحديث model data controller.setCourseName ('Python') System.out.println ('n بعد التحديث ، تكون تفاصيل الدورة كما يلي') controller.updateView ()} دورة تدريبية خاصة ثابتة retriveCourseFromDatabase () {Course course = new Course () course.setName ('Java') course.setId ('01 ') course.setCategory (' Programming ') return course}}

الفئة أعلاهيجلب بيانات الدورة التدريبية من باستخدام أي مستخدم يدخل مجموعة القيم. ثم يدفع هذه القيم إلى نموذج الدورة التدريبية. ثم يقوم بتهيئة العرض الذي أنشأناه سابقًا في المقالة.علاوة على ذلك ، فإنه يستدعي أيضًا CourseController الطبقة وتربطها بـ دورة الطبقة و عرض الدورة صف دراسي. ال updateView () الطريقة التي تعد جزءًا من وحدة التحكم ، ثم تقوم بتحديث تفاصيل الدورة التدريبية على وحدة التحكم. تحقق من الإخراج أدناه.

انتاج |

تفاصيل الدورة: الاسم: Java معرف الدورة: 01 فئة الدورة: البرمجة بعد التحديث ، تفاصيل الدورة كما يلي: تفاصيل الدورة: الاسم: معرف الدورة التدريبية في Python: 01 فئة الدورة التدريبية: البرمجة

هندسة MVCيوفر مستوى جديدًا تمامًا من نمطية الكود الخاص بك مما يجعله أكثر قابلية للقراءة والصيانة. هذا يقودنا إلى نهاية هذا المقال.آمل أن تكون واضحًا مع كل ما تمت مشاركته معك.

تأكد من ممارسة أكبر قدر ممكن وإعادة تجربتك.

تفحص ال من Edureka ، وهي شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250000 متعلم راضٍ منتشرين في جميع أنحاء العالم. نحن هنا لمساعدتك في كل خطوة في رحلتك ، لقد توصلنا إلى منهج مصمم للطلاب والمهنيين الذين يرغبون في أن يصبحوا مطور جافا.

لديك سؤال لنا؟ يرجى ذكرها في قسم التعليقات في 'هندسة MVC في جافا' مقال وسنعاود الاتصال بك في أقرب وقت ممكن.