Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

Model – View – Controller

💡 Kiến trúc MVC (Model-View-Controller) là một mô hình phát triển phần mềm
được sử dụng rộng rãi trong việc phát triển ứng dụng web. Mô hình này tách
biệt phần dữ liệu (Model), giao diện người dùng (View) và logic xử lý
(Controller) của ứng dụng.

Chi tiết về kiến trúc MVC:


1. Model: Đại diện cho dữ liệu và các thao tác xử lý dữ liệu trong ứng dụng. Model
thường bao gồm các lớp, đối tượng hoặc cấu trúc dữ liệu để thực hiện các tác vụ
như truy xuất dữ liệu từ cơ sở dữ liệu, xử lý logic nghiệp vụ và lưu trữ trạng thái
ứng dụng.

2. View: Đại diện cho giao diện người dùng, nơi mà dữ liệu được hiển thị và tương tác
với người dùng. View có thể là các trang HTML, template hoặc các thành phần giao
diện khác. Nó không nên chứa logic xử lý phức tạp và chỉ nên biểu diễn dữ liệu
được cung cấp bởi Model.

3. Controller: Đại diện cho logic xử lý và điều khiển luồng của ứng dụng. Nó nhận lệnh
từ người dùng thông qua View và sau đó tương tác với Model để cập nhật dữ liệu
hoặc thực hiện các thao tác xử lý yêu cầu. Sau khi hoàn thành, Controller sẽ cập
nhật lại View để hiển thị kết quả cho người dùng.

Ưu điểm của kiến trúc MVC:


1. Tách biệt logic xử lý ứng dụng: Mô hình MVC giúp tách rời logic xử lý, giao diện
người dùng và dữ liệu. Điều này làm cho mã nguồn dễ dàng bảo trì, mở rộng và
thay đổi.

2. Tính mô-đun hóa: Kiến trúc MVC cho phép phân chia ứng dụng thành các thành
phần độc lập, giúp giảm sự phụ thuộc giữa các thành phần và tăng khả năng tái sử
dụng code.

3. Đồng thời phát triển: Với MVC, các thành viên của nhóm phát triển có thể làm việc
song song trên các thành phần khác nhau của ứng dụng mà không ảnh hưởng đến
nhau.

Model – View – Controller 1


4. Tính mở rộng và sửa đổi: Với việc tách biệt rõ ràng giữa Model, View và Controller,
việc thay đổi hoặc thêm mới các thành phần trong mô hình trở nên dễ dàng và an
toàn hơn.

Hạn chế của kiến trúc MVC:


1. Phức tạp hóa ứng dụng nhỏ: Đôi khi, sử dụng kiến trúc MVC có thể làm phức tạp
thêm các ứng dụng nhỏ và đơn giản, khiến cho việc triển khai trở nên quá phức tạp
và cồng kềnh.

2. Khó khăn trong việc hiểu và học: Đối với các lập trình viên mới, việc hiểu và học
kiến trúc MVC có thể đòi hỏi thời gian và nỗ lực, đặc biệt là để hiểu rõ cách mà các
thành phần tương tác với nhau.

Khi nào sử dụng kiến trúc MVC: Kiến trúc MVC được sử dụng
trong các ứng dụng web nơi phân chia rõ ràng giữa dữ liệu, giao
diện người dùng và logic xử lý là quan trọng. Đây là một mô hình
phù hợp cho các dự án có quy mô lớn hoặc khi có sự tham gia của
nhiều lập trình viên. Nó giúp tăng tính sắp xếp, dễ dàng bảo trì và
phát triển ứng dụng.

Ví dụ bằng Java Spring Boot:


Trong ứng dụng Spring Boot với mô hình MVC, bạn có thể triển khai kiến trúc như
sau:

1. Model: Tạo một lớp SanPham để đại diện cho dữ liệu sản phẩm:

public class SanPham {


private int id;
private String ten;
private String hang;
private int soLuong;
private double gia;
private Date ngayNhap;

// Getter và setter
}

Model – View – Controller 2


2. View: Sử dụng các file HTML hoặc template để hiển thị thông tin sản phẩm cho
người dùng.

3. Controller: Tạo một lớp SanPhamController để điều khiển logic xử lý:

@Controller
@RequestMapping("/sanpham")
public class SanPhamController {
@Autowired
private SanPhamService sanPhamService;

@GetMapping("/{id}")
public String getSanPham(@PathVariable int id, Model model) {
SanPham sanPham = sanPhamService.getSanPhamById(id);
model.addAttribute("sanPham", sanPham);
return "sanpham";
}

@PostMapping("/")
public String createSanPham(@ModelAttribute SanPham sanPham) {
sanPhamService.createSanPham(sanPham);
return "redirect:/sanpham";
}

// Các phương thức xử lý khác: cập nhật, xóa sản phẩm, v.v.
}

Trong ví dụ trên, SanPhamController xử lý các yêu cầu từ người dùng, gọi các phương
thức từ SanPhamService để thực hiện logic nghiệp vụ liên quan đến sản phẩm. Kết
quả sau đó được trả về View để hiển thị thông tin sản phẩm cho người dùng.

Model – View – Controller 3

You might also like