[Java Web][Wiki] Mô hình 3 lớp (MVC) trong lập trình web với Java

Java-Web-Development

Mô hình 3 lớp MVC được sử dụng như tiêu chuẩn trong việc thiết kế và lập trình web. Vậy mô hình 3 lớp là gì ? Mô hình này có đặc điểm gì so với các mô hình khác?

Mô hình 1 lớp:

Mo Hinh 1 Lop

Cấu trúc: bao gồm các file được viết bằng HTML,CSS, Javascript,JSP.

Chức năng: Các file vừa dùng để hiện giao diện người dùng, nhận yêu cầu, xử lí yêu cầu và hiển thị kết quả.

Ưu điểm:

  • Lập trình đơn giản, thực thi nhanh.
  • Phù hợp với ứng dụng nhỏ, đơn giản.

Hạn chế:

  • Khó nâng cấp và sửa lỗi, tính chuyên môn hóa không cao: Một người phải biết tất cả:
    • – html, html5, css, javascript, frontpage, dreamweaver, …: để thiết kế giao diện
    • – java, jsp,servlet, jme, hibernate, spring, strut,…: để lập trình web động.
    • – mysql, sql server, oracle … và ngôn ngữ SQL: để sử dụng csdl và lập trình database.
    •  Biết nghiệp vụ của công ty để viết phần xử lý nghiệp vụ,…
  • Bảo mật không tốt do có thể đọc được mã nguồn.

Mô hình 2 lớp:

Mo Hinh 2 Lop

Lớp thứ 1 :

Bao gồm các file viết bằng HTML, CSS, Javascript, JSP.

Chức năng hiện thị giao diện người dùng, nhận yêu cầu và hiển thị kết quả.

Lớp thứ 2:

Bao gồm các file được viết bằng Java thông thường, sẽ được biên dịch ra file .class.

Chức năng là xử lí yêu cầu : tính toán, truy xuất cơ sở dữ liệu.

Ưu điểm:

  • Che giấu được mã nguồn.
  • Dễ nâng cấp hơn mô hình 1 lớp.

Hạn chế:

  • Phức tạp hơn so với mô hình 1 lớp.

Mô hình 3 lớp (MVC):

Mo Hinh 3 Lop MVC

Lớp View:

Bao gồm các file viết bằng HTML, CSS, Javascript, JSP.

Chức năng là hiện thị giao diện người dùng và hiện thị kết quả.

Lớp Model:

Gồm các file viết bằng java.

Chức năng là xử lí yêu cầu : tính toán, truy xuất cơ sở dữ liệu.

Lớp Controller:

Gồm file được viết bằng java “đặc biệt” có tên là Servlet. File java “đặc biệt” này có thể tiếp nhận các request trực tiếp từ brower.

Chức năng: Tiếp nhận yêu cầu và điều phối yêu cầu.

Ưu điểm:

  • Bảo mật tốt hơn: che dấu được mã nguồn, request từ browser từ giao tiếp với lớp control.
  • Phân công tốt hơn, tính chuyên môn hóa cao: web designer sẽ thiết kế lớp Views (font-end) và web developer sẽ thiết kế lớp models, control (back-end).
  • Dễ nâng cấp và chỉnh sửa: Muốn sửa chữa giao diện thì sửa ở lớp view, muốn sửa chữa các chức năng thì sửa lớp model.

Hạn chế:

  • Khó cài đặt hơn mô hình 1 lớp do mô hình 3 lớp phức tạp hơn mô hình 1 lớp rất nhiều.
  • Không phù hợp với trang web có quy mô nhỏ.
  • Chạy chậm hơn mô hình 1 lớp.
Share
Share