Mô Hình 3 Lớp Trong Lập Trình Java

Khám phá lập trình Java với mô hình 3 lớp, giúp phát triển ứng dụng hiệu quả và dễ bảo trì. Tìm hiểu ngay để nâng cao kỹ năng lập trình.

Trường đại học

uit

Chuyên ngành

lập trình java

Người đăng

Ẩn danh

Thể loại

bài giảng
55
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

1. Chương 6: MÔ HÌNH 3 LỚP

6.1. Giới thiệu

6.2. Mô hình 3 lớp

6.3. Tổ chức mô hình 3 layer

6.4. Cách thức vận hành

6.5. Ưu điểm

6.6. Ví dụ

6.7. MÔ HÌNH MVC

6.8. Mô hình MVC

6.9. Mô hình 3 lớp và MVC

Tóm tắt

I. Giới thiệu Mô Hình 3 Lớp Trong Lập Trình Java

Mô hình 3 lớp trong lập trình Java là một kiến trúc phần mềm quan trọng, giúp tổ chức mã nguồn một cách rõ ràng và dễ bảo trì. Mô hình này chia ứng dụng thành ba lớp chính: Presentation Layer, Business Logic Layer và Data Access Layer. Mỗi lớp đảm nhận một vai trò riêng biệt, từ việc giao tiếp với người dùng đến xử lý nghiệp vụ và quản lý dữ liệu. Việc áp dụng mô hình này không chỉ giúp tăng tính khả thi mà còn cải thiện hiệu suất của ứng dụng.

1.1. Tổng quan về Mô Hình 3 Lớp

Mô hình 3 lớp, hay còn gọi là 3-tier architecture, bao gồm ba phần chính: giao diện người dùng, logic nghiệp vụ và truy cập dữ liệu. Mô hình này giúp phân tách các chức năng của ứng dụng, từ đó dễ dàng quản lý và bảo trì.

1.2. Lợi ích của Mô Hình 3 Lớp

Mô hình 3 lớp mang lại nhiều lợi ích như giảm sự kết dính giữa các thành phần, dễ dàng bảo trì và phát triển. Khi một phần của hệ thống thay đổi, chỉ cần điều chỉnh trong lớp đó mà không ảnh hưởng đến toàn bộ ứng dụng.

II. Vấn Đề và Thách Thức Khi Áp Dụng Mô Hình 3 Lớp

Mặc dù mô hình 3 lớp mang lại nhiều lợi ích, nhưng cũng tồn tại một số thách thức trong quá trình triển khai. Việc phân chia rõ ràng các lớp có thể dẫn đến sự phức tạp trong việc quản lý mã nguồn. Ngoài ra, việc giao tiếp giữa các lớp cũng cần được thiết kế cẩn thận để tránh gây ra lỗi trong quá trình xử lý.

2.1. Khó Khăn Trong Việc Tích Hợp

Khi áp dụng mô hình 3 lớp, việc tích hợp giữa các lớp có thể gặp khó khăn. Cần có một giao thức rõ ràng để đảm bảo dữ liệu được truyền tải chính xác giữa các lớp.

2.2. Quản Lý Mã Nguồn Phức Tạp

Việc phân chia mã nguồn thành nhiều lớp có thể làm cho cấu trúc mã trở nên phức tạp hơn. Điều này đòi hỏi các lập trình viên phải có kinh nghiệm để duy trì và phát triển ứng dụng hiệu quả.

III. Phương Pháp Triển Khai Mô Hình 3 Lớp Trong Java

Để triển khai mô hình 3 lớp trong Java, cần xác định rõ ràng các lớp và chức năng của chúng. Mỗi lớp sẽ được phát triển độc lập, giúp dễ dàng bảo trì và mở rộng. Việc sử dụng các framework như Spring Framework có thể hỗ trợ trong việc xây dựng mô hình này một cách hiệu quả.

3.1. Cấu Trúc Các Lớp Trong Mô Hình 3 Lớp

Mô hình 3 lớp bao gồm Presentation Layer (giao diện người dùng), Business Logic Layer (logic nghiệp vụ) và Data Access Layer (truy cập dữ liệu). Mỗi lớp có nhiệm vụ riêng, giúp tổ chức mã nguồn một cách hợp lý.

3.2. Sử Dụng Spring Framework Trong Mô Hình 3 Lớp

Spring Framework cung cấp nhiều công cụ hỗ trợ cho việc phát triển ứng dụng theo mô hình 3 lớp. Nó giúp quản lý các bean và cung cấp các tính năng như Dependency Injection, giúp giảm sự kết dính giữa các lớp.

IV. Ứng Dụng Thực Tiễn Của Mô Hình 3 Lớp Trong Java

Mô hình 3 lớp được áp dụng rộng rãi trong phát triển ứng dụng Java, đặc biệt là trong các hệ thống quản lý và ứng dụng web. Việc tổ chức mã nguồn theo mô hình này giúp tăng tính khả thi và dễ dàng mở rộng trong tương lai.

4.1. Ví Dụ Về Ứng Dụng Thực Tế

Một ví dụ điển hình là hệ thống quản lý nhân sự, nơi mà các lớp được phân chia rõ ràng. Presentation Layer xử lý giao diện người dùng, Business Logic Layer thực hiện các nghiệp vụ và Data Access Layer quản lý dữ liệu.

4.2. Kết Quả Nghiên Cứu Về Mô Hình 3 Lớp

Nghiên cứu cho thấy rằng việc áp dụng mô hình 3 lớp giúp cải thiện hiệu suất và khả năng bảo trì của ứng dụng. Các lập trình viên có thể dễ dàng phát triển và mở rộng ứng dụng mà không gặp nhiều khó khăn.

V. Kết Luận và Tương Lai Của Mô Hình 3 Lớp Trong Lập Trình Java

Mô hình 3 lớp trong lập trình Java đã chứng minh được giá trị của nó trong việc tổ chức mã nguồn và cải thiện hiệu suất ứng dụng. Tương lai của mô hình này sẽ tiếp tục phát triển, đặc biệt là với sự hỗ trợ của các công nghệ mới và các framework hiện đại.

5.1. Xu Hướng Phát Triển Mô Hình 3 Lớp

Xu hướng hiện nay là tích hợp các công nghệ mới vào mô hình 3 lớp, giúp tăng cường khả năng mở rộng và bảo trì. Các công nghệ như microservices cũng đang được áp dụng để cải thiện tính linh hoạt của ứng dụng.

5.2. Tương Lai Của Mô Hình 3 Lớp

Mô hình 3 lớp sẽ tiếp tục là một phần quan trọng trong phát triển phần mềm. Sự phát triển của các công nghệ mới sẽ giúp mô hình này trở nên mạnh mẽ hơn, đáp ứng tốt hơn nhu cầu của người dùng.

10/07/2025

Trích đoạn nội dung tài liệu

LẬP TRÌNH JAVA Ch 6. MÔ HÌNH 3 LỚP Giảng viên: Tạ Việt Phương E-mail: phuongtv@uit.vn Nội dung 1. Mô hình 3 layer 3. Mô hình MVC 2 GIỚI THIỆU 3 Giới thiệu ◂ Mô hình 3 lớp: ◂ 3 tiers ? ◂ 3 layer ? 4 Giới thiệu ◂ 3 tiers - 3 tầng ◂ 3 layer - 3 lớp 5 3-tiers và 3-layer ◂ 3-tiers là một kiến trúc kiểu client/server mà trong đó giao diện người dùng (UI-user interface), các quy tắc xử lý (BR- business rule hay BL-business logic), và việc lưu trữ dữ liệu được phát triển như những module độc lập, và hầu hết là được duy trì trên các nền tảng độc lập, và mô hình 3 tầng (3-tiers) được coi là một kiến trúc phần mềm và là một mẫu thiết kế.

◂ Tầng Presentation: hiển thị các thành phần giao diện để tương tác với người dùng như tiếp nhận thông tin, thông báo lỗi, … ◂ Tầng Business Logic: thực hiện các hành động nghiệp vụ của phần mềm như tính toán, đánh giá tính hợp lệ của thông tin, Tầng này còn di chuyển, xử lí thông tin giữa 2 tầng trên dưới. ◂ Tầng Data: nơi lưu trữ và trích xuất dữ liệu từ các hệ quản trị CSDL hay các file trong hệ thống. Cho phép tầng Business logic thực hiện các truy vấn dữ liệu 6 3-tiers và 3-layer ◂ Nếu 3 tiers có tính vật lí thì 3 layer có tính logic. Nghĩa là ta phân chia ứng dụng thành các phần (các lớp) theo chức năng hoặc vai trò một cách logic.

Các layer khác nhau được thực thi trong 1 phân vùng bộ nhớ của process. Vì thế nên một tier có thể có nhiều layer. ◂ “Lớp” đề cập đến bộ phận chức năng của phần mềm, nhưng “tầng” đề cập đến bộ phận chức năng của phần mềm chạy trên cơ sở hạ tầng tách biệt với các bộ phận khác. 7 MÔ HÌNH 3 LAYER 8 Mô hình 3 lớp ◂ Trong phát triển ứng dụng, mô hình 3 lớp ra đời nhằm phân chia các thành phần trong hệ thống để dễ quản lý ◂ Các thành phần cùng chức năng sẽ được nhóm lại với nhau và phân chia trách nhiệm cho từng nhóm để công việc không bị chồng chéo và ảnh hưởng lẫn nhau 9 Tổ chức mô hình 3 layer ◂ Mô hình 3-layer gồm có 3 phần chính: ◂ Presentation Layer (GUI) : Lớp này có nhiệm vụ chính giao tiếp với người dùng.

Nó gồm các thành phần giao diện ( win form, web form,…) và thực hiện các công việc như nhập liệu, hiển thị dữ liêu, kiểm tra tính đúng đắn dữ liệu trước khi gọi lớp Business Logic Layer (BLL). ◂ Business Logic Layer (BLL) : Layer này phân ra 2 thành nhiệm vụ : ◂ Đây là nơi đáp ứng các yêu cầu thao tác dữ liệu của GUI layer, xử lý chính nguồn dữ liệu từ Presentation Layer trước khi truyền xuống Data Access Layer và lưu xuống hệ quản trị CSDL. ◂ Đây còn là nơi kiểm tra các ràng buộc, tính toàn vẹn và hợp lệ dữ liệu, thực hiện tính toán và xử lý các yêu cầu nghiệp vụ, trước khi trả kết quả về Presentation Layer. 10 Tổ chức mô hình 3 layer ◂ Mô hình 3-layer gồm có 3 phần chính: ◂ Data Access Layer (DAL): Lớp này có chức năng giao tiếp với hệ quản trị CSDL như thực hiện các công việc liên quan đến lưu trữ và truy vấn dữ liệu ( tìm kiếm, thêm, xóa, sửa,…).

◂ Một số cách đặt tên khác nhau cho 3 layer: ◂ Cách 1: GUI, BUS, DAL ◂ Cách 2: GUI, BLL, DAO, DTO ◂ Cách 3: Presentation, BLL, DAL 11 Tổ chức mô hình 3 layer 12 Tổ chức mô hình 3 layer ◂ Presentation Layer (GUI) ◂ Lớp này có nhiệm vụ chính là giao tiếp với người dùng. ◂ Gồm các thành phần giao diện và thực hiện các công việc như nhập liệu, hiển thị dữ liệu, kiểm tra tính đúng đắn dữ liệu trước khi gọi lớp Business Logic Layer. 13 Tổ chức mô hình 3 layer ◂ Business Logic Layer (BLL/BUS) ◂ Xử lý dữ liệu từ Presentation Layer trước khi truyền xuống Data Access Layer và lưu xuống hệ quản trị CSDL. ◂ Kiểm tra các ràng buộc, tính toàn vẹn và hợp lệ dữ liệu, thực hiện tính toán và xử lý các yêu cầu nghiệp vụ, trước khi trả kết quả về Presentation Layer.

14 Tổ chức mô hình 3 layer ◂ Data Access Layer (DAL/DAO) ◂ Lớp này có chức năng giao tiếp với hệ quản trị CSDL ◂ Thực hiện các công việc liên quan đến lưu trữ và truy xuất dữ liệu (đọc, thêm, xóa, sửa,…) 15 Tổ chức mô hình 3 layer ◂ Data Transfer Object (DTO) ◂ Các layer trao đổi dữ liệu thông qua Data Transfer Object (DTO). ◂ DTO là đối tượng chứa dữ liệu, được tạo từ các DTO class đại diện cho các đối tượng được lưu trữ trong CSDL. 16 Cách thức vận hành ◂ Đầu tiên người dùng giao tiếp với Presentation Layer (GUI) để gửi thông tin yêu cầu. ◂ Tại GUI, các thông tin sẽ được kiểm tra sơ bộ, nếu hợp lệ sẽ được chuyển xuống Business Logic Layer (BLL).

◂ BLL sẽ kiểm tra và tính toán các yêu cầu nghiệp vụ, nếu yêu cầu không hợp lệ hoặc không cần đến database thì BLL sẽ trả kết quả về cho GUI. 17 Cách thức vận hành ◂ Ngược lại, BLL sẽ gửi yêu cầu (đã xử lý nghiệp vụ) xuống Data Access Layer (DAL). ◂ DAL sẽ thao tác với hệ quản trị CSDL và trả kết quả về cho BLL. ◂ BLL kiểm tra và gửi kết quả lên GUI.

◂ GUI sẽ hiển thị thông báo và kết quả yêu cầu cho người dùng. 18 Cách thức vận hành ◂ Một khi gặp lỗi (các trường hợp không đúng dữ liệu) thì đang ở layer nào thì đưa lên trên layer cao hơn nó 1 bậc cho tới GUI thì sẽ đưa ra cho người dùng biết – Các dữ liệu được trung chuyển giữa các Layer thông qua Data Transfer Object (DTO) 19 Cách thức vận hành 20 Ưu điểm ◂ Giúp code được tường minh hơn, giảm sự kết dính nhờ vào việc chia ra từng lớp đảm nhận các chức năng khác nhau và riêng biệt như giao diện, xử lý, truy vấn. ◂ Dễ bảo trì: Khi 1 thành phần của hệ thống thay đổi, việc thay đổi này có thể được cô lập trong 1 lớp, hoặc ảnh hưởng đến lớp gần nhất mà không ảnh hưởng đến cả chương trình. 21 Ưu điểm ◂ Dễ phát triển: Khi muốn thêm chức năng nào đó thì việc lập trình theo mô hình sẽ dễ dàng hơn vì đã có chuẩn để tuân theo.

◂ Dễ bàn giao: Việc bàn giao, tương tác với nhau sẽ dễ dàng, nhanh chóng hơn vì mọi người đều theo một quy chuẩn định sẵn. ◂ Dễ phân phối khối lượng công việc: Mỗi nhóm sẽ nhận 1 nhiệm vụ được phân chia rõ ràng trong mô hình 3 lớp 22 Ví dụ 23 Ví dụ ◂ CSDL QLNhanSu có bảng Employee với cấu trúc như sau: 24 Ví dụ 25 Ví dụ ◂ Data transfer object (employeeDTO.employee_id = employee_id; } public String getEmployee_name() { return employee_name; } 26 Ví dụ public void setEmployee_name(String employee_name) { this.employee_name = employee_name; } public int getBirthYear() { return birthyear; } public void setBirthYear(int birthyear) { this.birthyear = birthyear; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } } 27 Ví dụ ◂ Data access layer (employeeDAL.java) package DAL; import DTO.employeeDTO; import java.Vector; public class employeeDAL { private Connection con; public boolean openConnection() { try { Class.SQLServerD river"); String dbUrl = "jdbc:sqlserver://localhost:1433; DatabaseName=QLNhanSu"; String username = "sa"; String password= ""; con = DriverManager.println(ex); } } 29 Ví dụ public Vector<employeeDTO> getAllEmployees(){ Vector<employeeDTO> arr = new Vector<employeeDTO>(); if (openConnection()) { try { String sql = “Select * from Employee"; Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); while(rs.setEmployee_id(rs.setEmployee_name(rs.getString("address")); 30 Ví dụ arr.println(ex); } finally { closeConnection(); } } return arr; } public boolean addEmployee(employeeDTO emp) { boolean result = false; if (openConnection()) { try { String sql = “Insert into Employee values(?,?,?,?)"; 31 Ví dụ PreparedStatement stmt = con.getEmployee_id()); stmt.getEmployee_name()); stmt.getAddress()); if (stmt.println(ex); } finally{ closeConnection(); } } return result; } 32 Ví dụ public boolean hasEmployeeID(int id){ boolean result = false; if (openConnection()) { try { String sql = “Select * from Employee where employee_id="+id; Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); result = rs.println(ex); } finally { closeConnection(); } } return result; } } 33 Ví dụ ◂ Business Logic Layer (employeeBLL.java) package BLL; import DAL.employeeDAL; import DTO.employeeDTO; import java.Vector; public class employeeBLL { employeeDAL empDAL = new employeeDAL(); public Vector<employeeDTO> getAllEmployees(){ return empDAL.getAllEmployees(); } 34 Ví dụ public String addEmployee(employeeDTO emp) { if (empDAL.getEmployee_id())) return "Mã NV đã tồn tại"; if (empDAL.addEmployee(emp)) return "Thêm thành công"; return "Thêm thất bại"; } } 35 Ví dụ ◂ Presentation layer (employeeGUI.java) package GUI; import BLL.employeeBLL; import DTO.employeeDTO; import java.Vector; import javax.DefaultTableModel; public class employeeGUI extends JFrame { employeeBLL empBLL = new employeeBLL(); JTable jTable1; … // khai báo các thành phần giao diện khác public employeeGUI() { initComponents(); loadEmployeeList(); } 36 Ví dụ public void initComponents() { …. // khởi tạo các thành phần giao diện } public void loadEmployeeList(){ DefaultTableModel dtm = new DefaultTableModel(); dtm.setModel(dtm); Vector<employeeDTO> arr = new Vector<employeeDTO>(); 37 Ví dụ arr = empBLL.getAllEmployees(); for(int i = 0; i < arr.size(); i++){ employeeDTO em = arr.get(i); int id = em.getEmployee_id(); String name = em.getEmployee_name(); int birthyear = em.getBirthYear(); String address = em.getAddress(); Object[] row = {id,name,birthyear,address}; dtm.addRow(row); } } } 38 Ví dụ public void addEmployeeActionPerformed(ActionEvent e) { try { if (txtID.setEmployee_id(Integer.setEmployee_name(txtName.getText()); 39 Ví dụ em.showMessageDialog(this, empBLL.showMessageDialog(this, “Thông tin không hợp lệ"); } } 40 Ví dụ ◂ Presentation layer (main.java) package GUI; public class main { public static void main(String[] args){ employeeGUI frm = new employeeGUI(); frm.setVisible(true); } } 41 MÔ HÌNH MVC 42 Mô hình MVC ◂ Mô hình MVC (Model – View – Controller) là một kiến trúc phần mềm hay mô hình thiết kế được sử dụng trong kỹ thuật phần mềm. Nó giúp cho các developer tách ứng dụng của họ ra 3 thành phần khác nhau Model, View và Controller.

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. 43 Mô hình MVC ◂ Các thành phần của MVC: ◂ Model: Đây là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất database, đối tượng mô tả dữ liệu như các Class, hàm xử lý… ◂ View: Đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi chứa tất cả các đối tượng GUI như textbox, images…Hiểu một cách đơn giản, nó là tập hợp các form hoặc các file HTML ◂ Controller: Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi đúng những phương thức xử lý chúng… Chẳng hạn thành phần này sẽ nhận request từ url và form để thao tác trực tiếp với Model. 44 Mô hình MVC 45 Mô hình MVC 46 Mô hình MVC ◂ MVC làm việc như thế nào? ◂ User tương tác với View, bằng cách click vào button, user gửi yêu cầu đi. ◂ Controller nhận và điều hướng chúng đến đúng phương thức xử lý ở Model.

◂ Model nhận thông tin và thực thi các yêu cầu.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ