Ví dụ Lập trình MVC trong Java

Ngày đăng: 16/07/2020   -    Cập nhật: 01/10/2020
MVC là một design pattern (mẫu thiết kế) phổ biến được áp dụng trên hầu hết các ngôn ngữ lập trình hướng đối tượng hiện nay từ Java, C#, PHP, Visual C++ ….

Và trong bài viết ngày hôm nay, mình cùng các bạn sẽ tìm hiểu về mô hình MVC cũng như cách áp dụng nó từ thiết kế đến lập trình MVC trong Java.

Nội dung của bài viết này gồm:


  • Hiểu rõ hơn về mô hình MVC
  • Thực hành, sử dụng mô hình MVC trong Java thông qua ví dụ
  • Kết luận

1. MVC là gì?


Mô hình MVC được giới thiệu lần đầu tiên bởi Trygve Reenskaug khi anh ta đang làm việc trong dự án Smalltalk ở công ty Xerox PARC ở California, Mỹ vào những năm 1970.

MVC được viết tắt bởi 3 từ: Model – View – Controller, là một mẫu thiết kế nhằm mục tiêu chia tách phần giao diện và code để dễ quản lý, phát triển và bảo trì.

Mô hình MVC chia một ứng dụng thành ba phần tương tác được với nhau, mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác.


  • Model: quản lý, xử lý dữ liệu
  • View: giao diện, hiển thị dữ liệu cho người dùng
  • Controller: điều khiển sự tương tác giữa Model và View

Minh họa mô hình MVC

Minh họa mô hình MVC
 

Tại sao lại cần sử dụng mô hình MVC?


Bạn có thể hiểu đơn giản như sau, một công việc được giao cho nhiều người làm, theo từng công đoạn khác nhau thì chắc chắn hiệu suất của công việc sẽ tăng lên rất cao.

Và việc sử dụng một design pattern để xây dựng một ứng dụng cũng sẽ như vậy.
 
Hơn nữa, nó sẽ giúp quá trình bảo trì, nâng cấp phát triển sản phẩm trở nên dễ dạng hơn rất nhiều so với việc bạn không sử dụng một design pattern nào cả.
 
Cụ thể về chức năng các thành phần trong mô hình MVC như sau:


Model:


  • Có nhiệm vụ quản lý dữ liệu của ứng dụng
  • Chứa tất cả các nghiệp vụ logic, đối tượng mô tả dữ liệu
  • Thông báo cho view để hiện thị lại kết quả cho người dùng

View:

  • Chứa giao diện, tương tác với người dùng, sử dụng Model để hiển thị kết quả cho người dùng
  • Đưa ra kết quả từ tầng Controller
  • Thu nhận các hoạt động, yêu cầu của người dùng và chuyển cho tầng Controller xử lý

Controller:

  • Định nghĩa các hoạt động, xử lý của hệ thống
  • Đối chiếu các hành động của người dùng từ View. Đồng thời tương tác Model để gọi View và hiển thị thông tin tương ứng cho người dùng.

Ưu điểm của mô hình MVC là ứng dụng của bạn sẽ dễ nâng cấp và bảo trì do code của bạn được chia thành các thành phần độc lập.

Tuy nhiên đối với những dự án nhỏ thì việc áp dụng mô hình MVC sẽ gây cồng kềnh, tốn thời gian trong quá trình phát triển.

Ứng dụng MVC vào lập trình: MVC đang là mô hình được ứng dụng rất nhiều trong lập trình. Việc sử dụng mô hình tương đối đơn giản. Chỉ cần hiểu rõ quy trình vận hành, nắm được các chức năng của từng bộ phận thì việc triển khai mô hình MVC tương đối dễ dàng.

Hệ thống MVC phát triển tốt sẽ cho phép phát triển front end, back end cùng trên hệ thống mà không có sự can thiệp, chia sẻ, chỉnh sửa các tập tin trong khi một hoặc hai bên vẫn đang làm việc.

Biết cách áp dụng thuần thục mô hình MVC là điều kiện bắt buộc để bạn có thể đi làm Java thực tế.

> Nếu bạn đang tìm kiếm sự nghiệp với Java thật sự thì KHÓA HỌC JAVA (Full stack) được NIIT - ICT Hà Nội phối hợp với nhà tuyển dụng sẽ giúp bạn đạt mục tiêu nhanh hơn.


2. Ví dụ lập trình form đăng nhập sử dụng mô hình MVC trong Java


Trong phần này, chúng ta sẽ đi vào demo một chương trình đơn giản có sử dụng mô hình MVC.

Ở đây, mình sẽ demo ứng dụng đăng nhập thông qua tài khoản, mật khẩu.
 
Ở đây mình sử dụng IDE Eclipse. Bạn nào chưa biết sử dụng thì...

> Học cách sử dụng Eclipse

Đầu tiên chúng ta sẽ tạo một project, trong đó có 4 class như sau:


Cấu trúc thư mục ví dụ lập trình MVC trong Java

Cấu trúc thư mục ví dụ lập trình MVC trong Java

Trong Model:
 


public class LoginModel {
   private String user;
   private String pass;

   public LoginModel() {}

   public LoginModel(String _userString _pass) {
      this.user = _user;
      this.pass = _pass;
   }

   public String getUser() {
      return user;
   }

   public void setUser(String _user) {
      this.user = _user;
   }

   public String getPass() {
      return pass;
   }

   public void setPass(String _pass) {
      this.pass = _pass;
   }
}
 
 
Trong View:
 


import java.util.Scanner;

public class LoginView {
   public static Scanner scanner = new Scanner(System.in);

   public void showMessage(String msg) {
      System.out.println(msg);
   }

   public LoginModel getInfo() {
      System.out.println("_____LOGIN_____");
      System.out.println();

      LoginModel user = new LoginModel();
      System.out.print("Username: ");
      user.setUser(scanner.next());
      System.out.print("Password: ");
      user.setPass(scanner.next());
      return user;
   }
}
 

Trong Controller chúng ta sẽ kiểm tra xem tài khoản và mật khẩu người dùng nhập vào có đúng không.

Nếu đúng thì đăng nhập thành công.
 


public class LoginController {
   private LoginView view;

   public LoginController(LoginView view) {
      this.view = view;
   }

   private boolean check(LoginModel user) {
      if ((user.getUser().equals("admin")) 
      && (user.getPass().equals("123"))) {
         return true;
      }
      return false;
   }

   public void login() {
      while (true) {
         LoginModel user = view.getInfo();
         if (check(user)) {
            view.showMessage("Login successfully");
            break;
            } else {
            view.showMessage("Wrong username or password");
         }
      }
   }
}
 

Trong Main:


public class MVCPattern {

   public static void main(String[] args) {
      LoginView view = new LoginView();
      LoginController control = new LoginController(view);

      control.login();
   }
}
 

Kết quả sau khi chạy chương trình:
 
Kết quả của ví dụ lập trình MVC trong Java

Kết quả của ví dụ lập trình MVC trong Java

 

Tạm kết

 
Như vậy mình và các bạn vừa tìm hiểu xong mô hình MVC và đã cùng nhau thực hành ví dụ lập trình MVC trong Java.

Hi vọng thông qua bài viết này sẽ giúp các bạn hiểu hơn về mô hình MVC và biết cách áp dụng nó trong project của mình.

Xin chào và hẹn gặp lại các bạn ở trong các bài viết tiếp theo.



---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0914939543
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
 
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python
Bình luận Facebook
Khóa học liên quan đến bài viết

Khóa học PHP Full stack [2023] cho người mới bắt đầu

96 giờ
Khóa học Lập trình PHP Full stack, phiên bản cập nhật lần thứ 8. Dạy Lập trình PHP bài bản từ Front end đến Back end + Laravel. Hướng dẫn làm 2 Dự Án Web lớn

KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG

50 giờ
Khóa học giúp học viên sử dụng thành thạo ngôn ngữ Lập trình Python (3x). Hiểu và phát triển được Ứng dụng Web với Django Framework. Học thực hành với Giảng viên cao cấp.

Lập trình PHP với Laravel Framework

42 giờ
Khóa học Lập trình PHP với Laravel Framework được NIIT - ICT HÀ NỘI xây dựng nhằm hoàn thiện kỹ năng lập trình web các các bạn đã biết Lập trình Web PHP thuần.

Khóa học Java Full stack (IJFD)

104 giờ
Học lập trình Java Fullstack với khóa học được xây dựng theo lộ trình bài bản, từ JAVA CƠ BẢN đến JAVA WEB và nâng cao về JAVA FRAMEWORK như: Spring Boot, Hibernate
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!