بخش های اصلی

آموزش الگوهای طراحی

Design Pattern - الگوی MVC

الگوی MVC کوتاه شده ی مدل – نمایش – کنترلر (Model – View – Controller) است. این الگو برای جداسازی دغدغه های برنامه ها به کار میره.

  • مدل (Model)– مدل، نشان دهنده ی یک شیء یا JAVA POJO حاوی داده است. مدل می تواند هنگامی که داده هایش تغییر می کنه، منطقی برای به روز رسانیِ کنترلر (controller) داشته باشه.
  • نمایش (View)– نمایش، عملیاتِ دیداری کردنِ داده ای که مدل (model) داره، را ارائه میده.
  • کنترلر (Contoller)– کنترلر روی هر دوی model و view عمل می کنه. کنترلر جریان داده را به شیء مدل (model) کنترل می کنه و هر زمان که داده تغییر کنه، نمایش (view) را به روز رسانی می کنه. کنترلر، نمایش (view) و مدل (model) را جدا از هم نگه میداره.

پیاده سازی

در این بخش یک شیءِ Student ایجاد می کنیم که بعنوان مدل (model) عمل می کنه. StudentView یک کلاسِ نمایش (view) خواهد بود که می تواند جزئیات دانش آموزان را روی کنسول چاپ کنه و StudentCotroller یک کلاس controller خواهد بود که مسئول ذخیره ی داده در شیءِ Student و به روز رسانی StudentView بر اساس آن است.

MVCPatternDemo، در نسخه ی آزمایشی کلاس مان، از StudentController برای نشان دادن کارایی الگویِ MVC استفاده خواهیم کرد.

mvc pattern uml diagram

مرحله ی 1

ایجاد مدل (Model).

Student.java

public class Student {
   private String rollNo;
   private String name;
   
   public String getRollNo() {
      return rollNo;
   }
   
   public void setRollNo(String rollNo) {
      this.rollNo = rollNo;
   }
   
   public String getName() {
      return name;
   }
   
   public void setName(String name) {
      this.name = name;
   }
}

مرحله ی 2

ایجاد نمایش (View).

StudentView.java

public class StudentView {
   public void printStudentDetails(String studentName, String studentRollNo){
      System.out.println("Student: ");
      System.out.println("Name: " + studentName);
      System.out.println("Roll No: " + studentRollNo);
   }
}

مرحله ی 3

ایجاد کنترلر (Controller).

StudentController.java

public class StudentController {
   private Student model;
   private StudentView view;

   public StudentController(Student model, StudentView view){
      this.model = model;
      this.view = view;
   }

   public void setStudentName(String name){
      model.setName(name);		
   }

   public String getStudentName(){
      return model.getName();		
   }

   public void setStudentRollNo(String rollNo){
      model.setRollNo(rollNo);		
   }

   public String getStudentRollNo(){
      return model.getRollNo();		
   }

   public void updateView(){				
      view.printStudentDetails(model.getName(), model.getRollNo());
   }	
}

مرحله ی 4

استفاده از متدهای StudentController برای نشان دادن کاراییِ الگوی طراحیِ MVC.

MVCPatternDemo.java

public class MVCPatternDemo {
   public static void main(String[] args) {

      //fetch student record based on his roll no from the database
      Student model  = retriveStudentFromDatabase();

      //Create a view : to write student details on console
      StudentView view = new StudentView();

      StudentController controller = new StudentController(model, view);

      controller.updateView();

      //update model data
      controller.setStudentName("John");

      controller.updateView();
   }

   private static Student retriveStudentFromDatabase(){
      Student student = new Student();
      student.setName("Robert");
      student.setRollNo("10");
      return student;
   }
}

مرحله ی 5

بررسی خروجی

Student: 
Name: Robert
Roll No: 10
Student: 
Name: John
Roll No: 10

مبحث آموزشی

آموزش الگوهای طراحی

Learn Design Patterns

سرفصل ها

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

تبلیغات

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

آخرین مقالات

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد