– 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).
Bạn đang xem: Mô hình 3 lớp là gì
– 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.– 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,…).
Sau đây các bạn cùng jualkaosmuslim.com Phân tích chi tiết từng layer trong mô hình 3 lớp nhé
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:1.Hiển thị màn hình tra cứu ID2.Hiển thị màn hình thông tin chi tiết khách hàng tương ứng3.Hiển thị màn hình liên lạc với khách hàng.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.Xem thêm: Nằm Mơ Ăn Chuối Có Ý Nghĩa Gì, Mơ Thấy Quả Chuối Đánh Lô Đề Con Gì?
Bussiness 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.Ví dụ: Thực hiện mua một đơn hàng trên tiki qua nhiều bước : kiểm tra gói hàng còn không?, tính tổng chi phí, cho phép giao dịch và sắp xếp việc giao hàng.Bussiness 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ó.Ví dụ: Tiếp tục ví dụ ở trên. Bạn sẽ cần một Bussiness Component để kiểm tra gói hàng có khả dụng không ? hay một component để tính tổng chi phí,…Bussiness 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.Để hiểu rõ hơn về cấu trúc và cách xây dựng của mô hình 3 lớp, chúng ta cùng tham khảo một ví dụ về mô hình quản lí công nhân
gồm các lớp BUS, DAO, GUI. (Các đoạn code sẽ bị lược bỏ bớt )
Đầu tiên là GUI gồm các button insert, update, reset ,delete ,exit .Người dùng sẽ giao tiếp với màn hình giao diện này
Lớp DTO, đây không phải là layer, đây chỉ là 1 gói dữ liệu đươc trao đổi giữa các lớp. Gói dữ liệu này được xây dựng dưới dạng lớp đối tượng. Mỗi một công nhân sẽ mang những thuộc tính sau:public partial class tblNhanVien : INotifyPropertyChanging, INotifyPropertyChanged{ private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); private string _MaNV; private string _TenNV; private string _ChucVu; private string _MaPhong; private EntitySet _tblPhieuMuons; private EntitySet _tblPhieuNhaps; private EntitySet _tblPhieuTras; private EntitySet _tblPhieuTras1;}Các nghiệp vụ xử lý chính sẽ được đặt ở lớp BUS (hay là BLL) gồm các nghiệp vụ insert, update, delete, retrieve
public class PhieuNhapThietBiDAO{ public static List GetDSThietBi() { List dsThietBi = new List(); using (dbQLTBDataContext dk = new dbQLTBDataContext()) { var query = from u in dk.tblThietBis select u; foreach (var row in query) { tblThietBi model = new tblThietBi(); model.MaTB = row.MaTB; model.TenTB = row.TenTB; model.SoLuong = row.SoLuong; model.TinhTrang = row.TinhTrang; model.GhiChu = row.GhiChu; dsThietBi.Add(model); } return dsThietBi; }}Và cuối cùng là lớp DAO ( hay là DAL ). Truy vấn đến cơ sở dữ liệu.