C và mô hình 3 lớp là gì năm 2024

Đối với lập trình hiện đại, mọi thứ đều đi nhiều lớp, tương tự như C#, cũng có cả mô hình 3 lớp để chúng ta thực thi áp dụng.

Ở C# chúng ta gọi là mô hình 3 lớp aka 3 Layers. Nó khá là nổi tiếng với sinh viên VN đang học C# (một số trường sẽ là Lập trình .NET, lập trình C#, lập trình ứng dụng)

Mục lục:

  1. Giới thiệu về mô hình 3 lớp.
  2. Cách tạo project và liên kết 3 lớp.
  3. Xây dựng DTO
  4. Xây dựng Data Access
  5. Xây dựng Business (BUS)
  6. Xây dựng GUI
  7. Lời kết và Source Code mẫu

Cấu tạo của C# – Mô hình 3 lớp đơn giản:

Gồm 3 lớp, đó là:

  • GUI Layer: Lớp này là lớp hiển thị giao diện và các chức năng để người dùng cuối sử dụng.
  • Business (BUS) Layer: Đây là lớp nhận các yêu cầu từ lớp GUI và truy xuất lên lớp Data để lấy thông tin và trả về GUI.
  • Data Access Layer: Lớp này là lớp để truy xuất với CSDL, chỉ duy nhất lớp này được làm việc với database.
  • (Ko cần thiết) DTO Layer: Lớp này chỉ là phụ thôi, đây là lớp định nghĩa các table trong database của bạn, định nghĩa cột của nó cũng như để ta gán data khi query lấy dữ liệu. Các bạn có thể hiểu nôm na là 1 dạng cơ bản ORM (Object Relation Mapping).

Đây là cách hoạt động của mô hình 3 lớp:

C và mô hình 3 lớp là gì năm 2024

Nhìn sơ qua thì nó khá là giống MVC bên web nhỉ? Business như là Controller :D, GUI là View và Data Access là Model.

Lợi thế của mô hình 3 lớp:

  • 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à maintain 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.

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: GUI_* (VD: GUI_QuanLy)
    • Lớp Business: BUS_* (VD: BUS_QuanLy)
    • Lớp Data Access: DAL_* (VD: DAL_QuanLy)
    • Lớp DTO: DTO_* (VD: DTO_QuanLy)
  • Bên trong 3 lớp như trên các file đặt cần có các tiền tố như sau:

    Ví dụ mình có một table tên là ThanhVien

    • Lớp GUI: GUI_* (VD: GUI_ThanhVien)
    • Lớp Business: BUS_* (VD: GUI_ThanhVien)
    • Lớp Data Access: DAL_* (VD: GUI_ThanhVien)
    • Lớp DTO: DTO_* (VD: DTO_ThanhVien)

Như các bạn đã thấy tên Table liên quan mật thiết tới cách đặt tên file nhé 😀

Qua trang 2, mình sẽ hướng dẫn các bạn tạo và liên kết 3 project lại với nhau nhé 😀

C và mô hình 3 lớp là gì năm 2024

Mình là Phát - biệt danh Seth Phát. Hiện đang là một Sr. Full-Stack Engineer. Mình là một người yêu thích và đam mê lập trình và hiện tại đang theo về phần Web là chủ yếu. Mạnh Back-end và khá Front-end, vẫn đang theo đều cả 2 :v. Còn gì bằng khi được làm những thứ mà mình yêu thích, đam mê ;)

Mô hình này thực hiện chức năng quản lý code khi xây dựng một hệ thống lớn. Đồng thời, hỗ trợ xử lý dữ liệu lỗi dễ dàng hơn nhờ chức năng phân chia trách nhiệm cho từng nhóm. Việc này sẽ đảm bảo công việc không bị chồng chéo và ảnh hưởng lẫn nhau.

Three Layer (3-Layer) hay còn gọi là mô hình quản lý 3 lớp ra đời nhằm phân chia các thành phần trong hệ thống. Mô hình hoạt động dựa trên 2 nguyên tắc:

  • Một là, các thành phần cùng chức năng sẽ được nhóm lại với nhau tạo thành một thể thống nhất.
  • Hai là, phân chia công việc cụ thể và rõ ràng cho từng nhóm. Nó sẽ góp phần thực hiện mục đích hạn chế sự chồng chéo, lộn xộn của file dữ liệu.

Mô hình 3 lớp sẽ mang tới cấu trúc sáng sủa, dễ dùng lại. Từ đó giúp việc phát triển và bảo trì phần mềm dễ dàng hơn.

Khi được thực thi mô hình, các layer khác nhau vẫn có thể nằm trong cùng một vùng bộ nhớ của một process. Và vẫn có giao tiếp giữa 2 layer nhưng không cần có sự giao tiếp giữa 2 process.

C và mô hình 3 lớp là gì năm 2024

Mô hình này thực hiện chức năng quản lý code khi xây dựng một hệ thống lớn

Ưu điểm của mô hình 3 lớp

Đây là mô hình được các nhà lập trình tin học tin dùng bởi sở hữu nhiều ưu điểm như:

Việc phân chia thành từng lớp với các nhiệm vụ khác nhau sẽ mang lại hiệu quả quản lý tường minh. Khi chúng đảm nhận các chức năng riêng biệt khác nhau sẽ giảm sự kết dính.

Những người có kinh nghiệm lập trình thường áp dụng trong kiểm soát giao diện, xử lý, truy vấn,... Hạn chế tối đa việc để tất cả lại một chỗ nhằm quản lý và maintain project tối ưu hơn.

Dễ dàng phân loại các hành động tại Business sẽ góp công lớn trong công tác bảo trì. Khi được phân chia thành từng nhóm, lập trình viên có thể nhanh chóng thay đổi khi cần bảo trì một thành phần của hệ thống.

Với mô hình 3 lớp , thao tác thay đổi dữ liệu có thể được cô lập trong 1 lớp hoặc chỉ ảnh hưởng đến lớp gần nhất. Điều đó đảm bảo không ảnh hưởng đến cả chương trình, tiết kiệm thời gian công sức.

Thao tác phân loại các hàm truy xuất tại Database hay phân loại hàm theo table,… Chúng sẽ trở nên dễ dàng vì chúng ta đã có chuẩn để tuân theo.

Nhờ có mô hình thì việc muốn thêm một chức năng nào đó sẽ dễ dàng hơn.

Khi có sự thay đổi giữa hai môi trường từ Winform sang Webform. Và bạn mong muốn tái sử dụng thì chỉ việc thay đổi lớp GUI.

Nếu mọi người đều tuân theo một quy chuẩn đã được định sẵn, thì khi bàn giao công việc trở nê dễ dàng và tiết kiệm thời gian. Các thành viên có thể tương tác "ờ mây zin gút chóp".

Mô hình quản lý 3 lớp sẽ hỗ trợ phân phối nhiệm vụ, khối lượng công việc rõ ràng. Đồng thời, nó sẽ giúp các lập trình viên kiểm soát công tác.

Với những ưu điểm tuyệt vời, mô hình cho phéo áp dụng được cho nhiều project lớn ở bên ngoài.

Chắc hẳn 10 ưu điểm trên đây sẽ khiến bạn cảm thấy hài lòng không lựa chọn loại mô hình sử dụng này. Tuy nhiên, sản phẩm có tới 6 loại để người dùng tham khảo trong đoạn tiếp theo sau đây.

C và mô hình 3 lớp là gì năm 2024

Mô hình 3 lớp được các nhà lập trình tin học tin dùng bởi sở hữu nhiều ưu điểm

Phân loại mô hình 3 lớp ( 3-layer)

Mô hình 3-Layers có tính logic thường được sử dụng trong các dự án lớn. Nó góp phần quản lý các thành phần của hệ thống. Mô hình cho phép lập trình .NET, lập trình ứng dụng, lập trình C#,...

Mô hình 3-layer được biết đến với 3 phần chính là:

GUI (Presentation Layer)

Mô hình thực hiện nhiệm vụ giao tiếp với người dùng trước khi gọi lớp BLL. Gồm: các thành phần giao diện ( winform, webform,…) thực hiện nhiệm vụ:

  • Nhập liệu
  • Hiển thị dữ liệu
  • Kiểm tra tính đúng đắn dữ liệu

BLL (Business Logic Layer)

Mô hình thực hiên 2 nhiệm vụ chính bao gồm :

  • Một là, đáp ứng và xử lý các yêu cầu thao tác dữ liệu của GUI layer. Nó phải đảm bảo hoàn thành trước truyền xuống DAL và lưu xuống hệ quản trị CSDL.
  • Hai là, kiểm tra các ràng buộc, tính toàn vẹn, tính hợp lệ dữ liệu. Trước khi trả kết quả về GUI, tại BLL sẽ thực hiện tính toán và xử lý các yêu cầu nghiệp vụ.

DAL (Data Access Layer)

Ứng dụng thực hiện chức năng giao tiếp với hệ quản trị CSDL. Đồng thời, tham gia lưu trữ và truy vấn dữ liệu ( tìm kiếm, sửa, thêm, xóa,…).

Như vậy, mô hình quản lý 3 lớp hoạt động theo sơ đồ như sau:

  • GUI liên kết với BLL và Data Transfer Objects ( DTO thành phần thuộc lớp BLL).
  • BLL liên kết tới được DAL và DTO.
  • DAL chỉ liên kết tới DTO.

Mỗi mô hình sẽ có những cấu tạo riêng tạo nên điểm khác biệt và có những ưu điểm nổi bật. Để hiểu rõ hơn, bạn đọc hãy tham khảo các thông tin được cập nhật chi tiết trong các phần tiếp theo.

C và mô hình 3 lớp là gì năm 2024

Mô hình 3-Layers có tính logic thường được sử dụng trong các dự án lớn

Thành phần của từng lớp

GUI để thực hiện tốt vai trò của mình thường có hai thành phần chính là:

  • UI Components - Thành phần tạo nên giao diện chịu trách nhiệm thu nhận và hiển thị dữ liệu.
  • UI Process Components - Thành phần quản lý các quá trình chuyển đổi.

BLL gồm 4 thành phần:

  • Service Interface - Cung cấp cho lớp GUI sử dụng thành phần giao diện lập trình.
  • Business Workflows - Xác định và điều phối các quy trình nghiệp vụ.
  • Business Components - Kiểm tra các quy tắc nghiệp vụ, ràng buộc logic.
  • Business Entities - Sử dụng như Data Transfer Objects ( DTO ) và truyền dữ liệu giữa các lớp.

DAL có chức năng chính là ghi lại các dữ liệu quan trọng. Vì thế mô hình có 2 phần là:

  • Data Access Logic Components - lưu trữ và truy xuất dữ liệu từ các nguồn dữ liệu (Data Sources). Kết hợp tạo thuận lợi cho cấu hình và bảo trì.
  • Service Agents - Tương tác với các dịch vụ từ bên ngoài.

Kinh nghiệm khi xây dựng mô hình 3 lớp là bạn cần thành lập một solution riêng cho project. Trong đó có 3 project khác nhau để tạo 3 lớp. Thực hiện đặt tên Project cần có các tiền tố theo mẫu Tên lớp_Tên tệp (Ví dụ: GUI_Quản lý).

Tuy nhiên, để đảm bảo sự thống nhất bạn nên đặt tên theo nguyên tắc. Dưới đây là một số cách đặt tên cho các thành phần của 3 lớp, Ví dụ:

  • Một là, đặt lần lượt tên GUI - BUS - DAL.
  • Hai là, sử dụng tên có chứa tiền tố GUI - BLL - DAL - DTO.
  • Ba là, áp dụng tên có chứa GUI - BLL - DAL.

Bài viết đã giới thiệu tổng quan về mô hình 3 lớp, kinh nghiệm lập trình hiệu quả. Hy vọng, bài viết giúp bạn hiểu hơn về mô hình lập trình tuyệt vời này. Từ đó, có thể áp dụng vào thực tế làm tối ưu chương trình. Đồng thời, nó được đánh giá cao bởi chức năng hỗ trợ quản lý code và xử lý lỗi dữ liệu.