Mô Hình 3 Lớp Dùng Để Làm Gì?
Dạo gần đây mình đang làm về một số app desktop có sử dụng mô hình 3 lớp để thêm vào phần project trong CV , nên mình sẽ chia sẻ lại những điều cần chú ý trong mô hình 3 lớp.
Một khái niệm mô hình mà chắc hẳn các bạn newbie mới học lập trình đều bỡ ngỡ và không biết chúng là gì hoặc trong lúc code một project nào đó sẽ hay tạo file lung tung không theo 1 quy luật mô hình nào cả. Nếu các bạn gặp phải những vấn đề trên thì các bạn nên đọc bài viết này sẽ giúp ích các bạn rất nhiều đấy.
Mô Hình 3 lớp là gì ?
- Mô hình 3 lớp hay còn được gọi là mô hình Three Layer (3-Layer), mô hình này ra đời nhằm phân chia các thành phần trong hệ thống, 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 công việc cho từng nhóm để dữ liệu không bị chồng chéo và chạy lộn xộn.
- Mô hình này phát huy hiệu quả nhất khi bạn xây dựng một dự án(project) lớn, việc quản lý code và xử lý dữ liệu lỗi dễ dàng hơn.
Ưu điểm:
- Phân loại rõ ràng các lớp có các nhiệm vụ khác nhau. Từ đó ta có thể quản lý và duy trì project tốt hơn.
- Dễ dàng phân loại các hành động tại Business.
- Dễ dàng phân loại các hàm truy xuất tại Database, phân loại hàm theo table,…
- Ứng dụng được cho các project lớn ở bên ngoài.
Một số lưu ý khi xây dựng mô hình 3 lớp:
- Cần một solution riêng cho project
- Cần 3 project khác nhau để làm nên 3 lớp, tên project đặt như sau:
- Lớp GUI: (VD: QuanLy_GUI)
- Lớp Business: (VD: QuanLy_BUS)
- Lớp Data Access: (VD: QuanLy_DAL)
- Lớp DTO: (VD: QuanLy_DTO)
Giới Thiệu về Mô Hình 3 Lớp
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 là giao tiếp với người dùng. Nó gồm các thành phần giao diện ( winform, webform, …) 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): Lớp 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.
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,…).
Các thành phần của từng lớp
Presentation Layer (GUI)
Có hai thành phần chính sau đây với những tác vụ cụ thể :
- UI Components : gồm các thành phần tạo nên giao diện của ứng dụng (GUI). Chúng chịu trách nhiệm thu nhận và hiển thị dữ liệu cho người dùng… Ví dụ : textbox, button, combobox, …
- UI Process Components : là thành phần chịu trách nhiệm quản lý các quá trình chuyển đổi giữa các UI.
Ví dụ : Sắp xếp quá trình kiểm tra thông tin khách hàng:
- Hiển thị màn hình tra cứu ID.
- Hiển thị màn hình thông tin chi tiết khách hàng tương ứng.
- Hiển thị màn hình liên lạc với khách hàng.
Business Layer (BLL)
Lớp này gồm 4 thành phần:
-
Service Interface : là thành phần giao diện lập trình mà lớp này cung cấp cho lớp Presentation sử dụng.
-
Business Workflows : chịu trách nhiệm xác định và điều phối các quy trình nghiệp vụ gồm nhiều bước và kéo dài. Những quy trình này phải được sắp xếp và thực hiện theo một thứ tự chính xác.
-
Business Components : chịu trách nhiệm kiểm tra các quy tắc nghiệp vụ, ràng buộc logic và thực hiện các công việc . Các thành phần này cũng thực hiện các dịch vụ mà Service Interface cung cấp và Business Workflows sẽ sử dụng nó.
-
Business Entities : thường được sử dụng như Data Transfer Objects ( DTO ) . Bạn có thể sử dụng để truyền dữ liệu giữa các lớp (Presentation và Data Layer). Chúng thường là cấu trúc dữ liệu ( DataSets, XML,… ) hay các lớp đối tượng đã được tùy chỉnh.
Ví dụ : tạo 1 class Student lưu trữ các dữ liệu về tên, ngày sinh, ID, lớp.
Data Layer (DAL)
- Data Access Logic Components : chịu trách nhiệm chính lưu trữ và truy xuất dữ liệu từ các nguồn dữ liệu (Data Sources) như XML, file system,… Hơn nữa còn tạo thuận lợi cho việc dễ cấu hình và bảo trì.
- Service Agents : giúp bạn gọi và tương tác với các dịch vụ từ bên ngoài một cách dễ dàng và đơn giản.
Kết
Như vậy mình đã chia sẻ hết cho các bạn về mô hình 3 lớp và những lưu ý khi xây dựng một mô hình 3 lớp trong project nào đó. Và mình rất cảm ơn các bạn đã đọc đến đây. Nếu thấy hay thì các bạn đừng ngại đánh giá bài viết và share cho mọi người cùng biết nha. Thanks !