logo

ארכיטקטורת MVC ב-Java

ה-Model-View-Controller (MVC) ידוע דפוס עיצוב בתחום פיתוח אתרים. זו הדרך לארגן את הקוד שלנו. הוא מציין שתוכנית או יישום יהיו מורכבים ממודל נתונים, מידע מצגת ומידע בקרה. דפוס ה-MVC צריך להפריד את כל הרכיבים הללו כאובייקטים שונים.

בחלק זה, נדון בארכיטקטורת MVC ב-Java, יחד עם היתרונות והחסרונות שלה ודוגמאות להבנת היישום של MVC ב-Java.

מהי ארכיטקטורת MVC ב-Java?

עיצובי המודל המבוססים על ארכיטקטורת MVC עוקבים אחר דפוס עיצוב MVC. הלוגיקה של האפליקציה מופרדת מממשק המשתמש תוך תכנון התוכנה באמצעות עיצובי מודל.

מערכת קבצים לינוקס

ארכיטקטורת דפוס ה-MVC מורכבת משלוש שכבות:

    דֶגֶם:הוא מייצג את השכבה העסקית של היישום. זהו אובייקט לשאת את הנתונים שיכולים להכיל גם את ההיגיון לעדכון הבקר אם הנתונים משתנים.נוף:הוא מייצג את שכבת המצגת של היישום. הוא משמש כדי להמחיש את הנתונים שהמודל מכיל.בקר:זה עובד גם על הדגם וגם על התצוגה. הוא משמש לניהול זרימת היישום, כלומר זרימת הנתונים באובייקט המודל ולעדכון התצוגה בכל פעם שהנתונים משתנים.

בתכנות ג'אווה, המודל מכיל את הפשוט שיעורי Java , התצוגה המשמשת להצגת הנתונים והבקר מכיל את סרבלטים . עקב הפרדה זו בקשות המשתמש מעובדות באופן הבא:

ארכיטקטורת MVC ב-Java
  1. לקוח (דפדפן) שולח בקשה לבקר בצד השרת, לדף.
  2. לאחר מכן הבקר קורא לדגם. הוא אוסף את הנתונים המבוקשים.
  3. לאחר מכן הבקר מעביר את הנתונים שאוחזרו לשכבת התצוגה.
  4. כעת התוצאה נשלחת חזרה לדפדפן (לקוח) על ידי התצוגה.

היתרונות של ארכיטקטורת MVC

היתרונות של ארכיטקטורת MVC הם כדלקמן:

  • ל-MVC יש תכונה של מדרגיות שבתורה עוזרת לצמיחת האפליקציה.
  • הרכיבים קלים לתחזוקה כי יש פחות תלות.
  • ניתן לעשות שימוש חוזר במודל על ידי תצוגות מרובות המספקות שימוש חוזר בקוד.
  • המפתחים יכולים לעבוד עם שלוש השכבות (מודל, תצוגה ובקר) בו זמנית.
  • באמצעות MVC, האפליקציה הופכת מובנת יותר.
  • באמצעות MVC, כל שכבה נשמרת בנפרד ולכן איננו צריכים להתמודד עם קוד מאסיבי.
  • ההרחבה והבדיקה של היישום קלות יותר.

הטמעת MVC באמצעות Java

כדי ליישם את דפוס MVC ב-Java, אנו נדרשים ליצור את שלושת המחלקות הבאות.

    כיתת עובדים, ישמש כשכבת מודלכיתת EmployeeView, יפעל כשכבת תצוגהכיתת מבקר עובדים, יפעל שכבת בקר

שכבות אדריכלות MVC

שכבת דגם

המודל בדפוס העיצוב של MVC פועל כשכבת נתונים עבור היישום. הוא מייצג את ההיגיון העסקי ליישום וגם את מצב היישום. אובייקט הדגם מאחזר ומאחסן את מצב המודל במסד הנתונים. באמצעות שכבת המודל, מוחלים כללים על הנתונים המייצגים את מושגי היישום.

הבה ניקח בחשבון את קטע הקוד הבא שיוצר a שהוא גם הצעד הראשון ליישום דפוס MVC.

Employee.java

 // 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 ו-seter למחלקת Employee.

הצג שכבה

כפי שהשם מתאר, התצוגה מייצגת את ההדמיה של הנתונים שהתקבלו מהמודל. שכבת התצוגה מורכבת מפלט של אפליקציה או ממשק משתמש. הוא שולח את הנתונים המבוקשים ללקוח, שנשלפים משכבת ​​הדגם על ידי בקר.

ניקח דוגמה שבה אנו יוצרים תצוגה באמצעות המחלקה 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); } } 

שכבת הבקר

שכבת הבקר מקבלת את בקשות המשתמש משכבת ​​התצוגה ומעבדת אותן, עם האימותים הנדרשים. הוא פועל כממשק בין Model ו-View. לאחר מכן הבקשות נשלחות למודל לעיבוד נתונים. לאחר עיבודם, הנתונים נשלחים בחזרה לבקר ולאחר מכן מוצגים בתצוגה.

הבה נשקול את קטע הקוד הבא שיוצר את הבקר באמצעות מחלקת EmployeeController.

EmployeeController.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()); } } 

קובץ Java בכיתה הראשית

הדוגמה הבאה מציגה את הקובץ הראשי ליישום ארכיטקטורת 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 class מביאה את נתוני העובדים מהשיטה שבה הכנסנו את הערכים. ואז זה דוחף את הערכים האלה במודל. לאחר מכן, הוא מאתחל את התצוגה (EmployeeView.java). כאשר התצוגה מאתחלת, הבקר (EmployeeController.java) מופעל ומחייב אותו למחלקת Employee ולמחלקת EmployeeView. סוף סוף שיטת updateView() (שיטת הבקר) מעדכנת את פרטי העובד שיודפסו למסוף.

תְפוּקָה:

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

בדרך זו, למדנו על ארכיטקטורת MVC, המשמעות של כל שכבה והטמעה שלה בג'אווה.