logo

بنية MVC في جافا

يعد Model-View-Controller (MVC) أحد أدوات التحكم المعروفة نمط التصميم في مجال تطوير الويب. إنها طريقة لتنظيم الكود الخاص بنا. وهو يحدد أن البرنامج أو التطبيق يجب أن يتكون من نموذج البيانات ومعلومات العرض ومعلومات التحكم. يحتاج نمط MVC إلى فصل كل هذه المكونات ككائنات مختلفة.

في هذا القسم، سنناقش بنية MVC في Java، إلى جانب مزاياها وعيوبها وأمثلة لفهم تنفيذ MVC في Java.

ما هي بنية MVC في جافا؟

تصميمات النماذج المبنية على بنية MVC تتبع نمط تصميم MVC. يتم فصل منطق التطبيق عن واجهة المستخدم أثناء تصميم البرنامج باستخدام تصميمات النماذج.

عدد صحيح لسلسلة Java

تتكون بنية نمط MVC من ثلاث طبقات:

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

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

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

مزايا معمارية MVC

مزايا بنية MVC هي كما يلي:

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

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

لتنفيذ نمط MVC في Java، يتعين علينا إنشاء الفئات الثلاثة التالية.

    فئة الموظف، ستكون بمثابة طبقة نموذجيةفئة عرض الموظف، ستكون بمثابة طبقة عرضفئة مراقب الموظفين، سوف تعمل طبقة تحكم

طبقات بنية MVC

طبقة النموذج

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

لنأخذ في الاعتبار مقتطف التعليمات البرمجية التالي الذي ينشئ وهو أيضًا الخطوة الأولى لتنفيذ نمط MVC.

الموظف.جافا

 // class that represents model public class Employee { // declaring the variables private String EmployeeName; private String EmployeeId; private String EmployeeDepartment; // defining getter and setter methods public String getId() { return EmployeeId; } public void setId(String id) { this.EmployeeId = id; } public String getName() { return EmployeeName; } public void setName(String name) { this.EmployeeName = name; } public String getDepartment() { return EmployeeDepartment; } public void setDepartment(String Department) { this.EmployeeDepartment = Department; } } 

يتكون الكود أعلاه ببساطة من أساليب getter وsetter لفئة الموظف.

عرض الطبقة

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

كم 0 في المليار

لنأخذ مثالاً حيث نقوم بإنشاء طريقة عرض باستخدام فئة 'EmployeeView'.

'EmployeeView.java'.

 // class which represents the view public class EmployeeView { // method to display the Employee details public void printEmployeeDetails (String EmployeeName, String EmployeeId, String EmployeeDepartment){ System.out.println('Employee Details: '); System.out.println('Name: ' + EmployeeName); System.out.println('Employee ID: ' + EmployeeId); System.out.println('Employee Department: ' + EmployeeDepartment); } } 

طبقة التحكم

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

لنأخذ بعين الاعتبار مقتطف التعليمات البرمجية التالي الذي يقوم بإنشاء وحدة التحكم باستخدام فئة StaffController.

EmployController.java

 // class which represent the controller public class EmployeeController { // declaring the variables model and view private Employee model; private EmployeeView view; // constructor to initialize public EmployeeController(Employee model, EmployeeView view) { this.model = model; this.view = view; } // getter and setter methods public void setEmployeeName(String name){ model.setName(name); } public String getEmployeeName(){ return model.getName(); } public void setEmployeeId(String id){ model.setId(id); } public String getEmployeeId(){ return model.getId(); } public void setEmployeeDepartment(String Department){ model.setDepartment(Department); } public String getEmployeeDepartment(){ return model.getDepartment(); } // method to update view public void updateView() { view.printEmployeeDetails(model.getName(), model.getId(), model.getDepartment()); } } 

ملف جافا من الدرجة الرئيسية

يعرض المثال التالي الملف الرئيسي لتنفيذ بنية MVC. نحن هنا نستخدم فئة MVCMain.

ك أقرب جار

MVCMain.java

 // main class public class MVCMain { public static void main(String[] args) { // fetching the employee record based on the employee_id from the database Employee model = retriveEmployeeFromDatabase(); // creating a view to write Employee details on console EmployeeView view = new EmployeeView(); EmployeeController controller = new EmployeeController(model, view); controller.updateView(); //updating the model data controller.setEmployeeName('Nirnay'); System.out.println('
 Employee Details after updating: '); controller.updateView(); } private static Employee retriveEmployeeFromDatabase(){ Employee Employee = new Employee(); Employee.setName('Anu'); Employee.setId('11'); Employee.setDepartment('Salesforce'); return Employee; } } 

ال MVCMain تقوم الطبقة بجلب بيانات الموظف من الطريقة التي أدخلنا فيها القيم. ثم يدفع تلك القيم في النموذج. بعد ذلك، يتم تهيئة العرض (EmployeeView.java). عند تهيئة العرض، يتم استدعاء وحدة التحكم (EmployeeController.java) وربطها بفئة الموظف وفئة StaffView. أخيرًا، تقوم طريقة updateView() (طريقة وحدة التحكم) بتحديث تفاصيل الموظف المراد طباعتها على وحدة التحكم.

انتاج:

 Employee Details: Name: Anu Employee ID: 11 Employee Department: Salesforce Employee Details after updating: Name: Nirnay Employee ID: 11 Employee Department: Salesforce 

بهذه الطريقة، تعلمنا عن بنية MVC وأهمية كل طبقة وتنفيذها في Java.