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ụ
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
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
Trong Model:
public class LoginModel {
private String user;
private String pass;
public LoginModel() {}
public LoginModel(String _user, String _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
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