Mô hình 3 lớp trong java

  -  
Do dạo gần đây mình đang làm về một số trong những app desktop sử dụng mô hình 3 lớp, đề nghị mình sẽ lưu ý lại đông đảo điều cần chăm chú trong mô hình 3 lớp.

Bạn đang xem: Mô hình 3 lớp trong java

1. Mô hình 3 lớp là gì??

Khái niệm:

Mô hình 3 lớp hay có cách gọi khác là mô hình Three Layer(3-Layer), quy mô này ra đời nhằm mục tiêu phân chia các thành bên trong hệ thống, những thành phần cùng chức năng sẽ được nhóm lại cùng với nhau cùng phân chia các bước cho từng nhóm nhằm dữ liệu không biến thành chồng chéo cánh và chạy lộn xộn.Mô hình này phát huy tác dụng nhất khi bạn xây dựng một khối hệ thống lớn, việc làm chủ code cùng xử lý dữ liệu lỗi dễ dãi hơn.

Ưu điểm:

Phân loại cụ thể các lớp có những nhiệm vụ không giống nhau. Từ đó ta bao gồm thể làm chủ 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 những hàm truy vấn xuất trên Database, phân nhiều loại hàm theo table,…Ứng dụng được cho những project bự ở mặt ngoài.…

Lưu ý lúc 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 để gia công nên 3 lớp, thương hiệu 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)

2. Reviews về quy mô 3 lớp

*

Mô hình 3-layer gồm bao gồm 3 phần chính:

Presentation Layer (GUI)

Lớp này có nhiệm vụ đó là giao tiếp với người dùng. Nó gồm những thành phần giao diện ( winform, webform, …) và triển khai các công việc như nhập liệu, hiển thị dữ liệu, bình chọn tính đúng chuẩn dữ liệu trước lúc gọi lớp Business logic Layer (BLL).

Business lô ghích Layer (BLL)Layer này phân ra 2 thành nhiệm vụ:

Đây là nơi đáp ứng nhu cầu các yêu cầu thao tác dữ liệu của GUI layer, xử lý bao gồm 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à một nơi kiểm tra những ràng buộc, tính trọn vẹn và đúng theo lệ dữ liệu, thực hiện thống kê giám sát và xử lý những yêu ước nghiệp vụ, trước lúc trả kết quả về Presentation Layer.

Data Access Layer (DAL)

Lớp này có tác dụng giao tiếp cùng với hệ quản lí trị cơ sở dữ liệu như thực hiện các các bước liên quan lại đến tàng trữ và tróc nã vấn tài liệu ( kiếm tìm kiếm, thêm, xóa, sửa,…).

3. Những thành phần của từng lớp

Presentation Layer (GUI)

Có nhì thành phần chính dưới đây với rất nhiều tác vụ rõ ràng :

UI Components : gồm các thành phần tạo cho giao diện của áp dụng (GUI). Chúng chịu trách nhiệm thu nhận với hiển thị dữ liệu cho người dùng… lấy ví dụ như : textbox, button, combobox, …UI Process Components : là thành phần chịu đựng trách nhiệm làm chủ các quá trình đổi khác giữa những UI… lấy một ví dụ : sắp xếp quy trình kiểm tra tin tức khách hàng:Hiển thị màn hình hiển thị tra cứu giúp ID.Hiển thị màn hình hiển thị thông tin cụ thể khách mặt hàng tương ứng.Hiển thị screen liên lạc với khách hàng hàng.

Bussiness Layer (BLL)

Lớp này tất cả 4 thành phần:

Service Interface : là thành phần đồ họa lập trình mà lại lớp này cung cấp cho lớp Presentation sử dụng.

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 cách và kéo dài. Những quy trình này đề nghị được sắp xếp và triển khai theo một lắp thêm tự chủ yếu xác.

Xem thêm: Tool Get Link 4Share Fshare Tên Lửa, Get Link Vip Max Speed (Mới Nhất)

Bussiness Components : phụ trách kiểm tra những quy tắc nghiệp vụ, ràng buộc lô ghích và tiến hành các công việc . Những thành phần này cũng tiến hành các dịch vụ mà Service Interface cung cấp và Business Workflows sẽ sử dụng nó.

Bussiness Entities : thường được sử dụng như Data Transfer Objects ( DTO ) . Bạn có thể sử dụng để truyền tài liệu giữa những lớp (Presentation cùng Data Layer). Bọn 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ụ : chế tạo ra 1 class Student giữ trữ những dữ liệu về tên, ngày sinh, ID, lớp.

Data Layer (DAL)

Data Access logic Components : phụ trách chính tàng trữ và truy tìm xuất tài liệu từ những nguồn tài liệu (Data Sources) như XML, tệp tin system,… không chỉ có thế còn tạo dễ dàng cho câu hỏi dễ cấu hình và bảo trì.Service Agents : giúp bạn gọi và liên tưởng với những dịch vụ từ bên phía ngoài một cách dễ dàng và đơn giản.

Để làm rõ hơn về kết cấu và giải pháp xây dựng của quy mô 3 lớp, họ cùng xem thêm một ví dụ về mô hình quản lí Uber gồm những lớp BUS, DAO, DTO, GUI ( Lớp GUI đã là phần công tác chính).

*

Do ở đây mình lười đề nghị mình tụ lại thành các thư mục để dễ call nhau :v (Nếu làm đúng mực thì buộc phải là tạo ra các project trong Solution bắt đầu đúng)

Đầu tiên là GUI gồm các button, texbox, ... Mà người dùng sẽ liên tưởng với màn hình giao diện này.

*
*

Lớp DTO, cất những dữ liệu được thi công dưới dạng lớp đối tượng. Từng một User đang mang phần đông thuộc tính sau:

namespace UberManagerment_WPF.DTO{ public class account string name; string userName; string passWord; string telephone; string status; public string Name get => name; mix => name = value; public string UserName get => userName; mix => userName = value; public string PassWord get => passWord; mix => passWord = value; public string Telephone get => telephone; set => telephone = value; public string Status get => status; phối => status = value; //Hàm khởi chế tạo ra public Account() Name = ""; UserName = ""; PassWord = ""; Telephone = ""; Status = "0"; public Account(string Name, string UserName, string Password, string Telephone, string Status) this.Name = Name; this.UserName = UserName; this.PassWord = PassWord; this.Telephone = Telephone; this.Status = Status; Các nhiệm vụ xử lý chính sẽ được đặt ngơi nghỉ lớp BUS (hay là BLL) gồm những nghiệp vụ insert, update, delete,...

Xem thêm: Cách Xem Dung Lượng Máy Tính Win 10, Cách Kiểm Tra Dung Lượng Laptop Win 10

namespace UberManagerment_WPF.BUS public class List_Driver_BUS private static List_Driver_BUS instance; public static List_Driver_BUS Instance get if (instance == null) instance = new List_Driver_BUS(); return instance; public void ShowListDriver(DataGrid data) data.ItemsSource = List_Driver_DAO.Instance.ShowListDriver(); public void ShowListDriverMotobike(DataGrid data) data.ItemsSource = List_Driver_DAO.Instance.ShowListDriver_Motobike(); public void ShowListDriverCar(DataGrid data) data.ItemsSource = List_Driver_DAO.Instance.ShowListDriver_Car(); public void ShowListDriverTaxiCar(DataGrid data) data.ItemsSource = List_Driver_DAO.Instance.ShowListDriver_taxiCar(); Và cuối cùng là lớp DAO ( tuyệt là DAL ). Truy tìm vấn đến các đại lý dữ liệu

http://kitchencake.vnnamespace UberManagerment_WPF.DAO{ class List_Driver_DAO { private static List_Driver_DAO instance; public static List_Driver_DAO Instance get if (instance == null) instance = new List_Driver_DAO(); return instance; public các mục LstDriver_Motobike get => lstDriver_Motobike; phối => lstDriver_Motobike = value; public list LstDriver_Car get => lstDriver_Car; mix => lstDriver_Car = value; public danh sách LstDriver_TaxiCar get => lstDriver_TaxiCar; phối => lstDriver_TaxiCar = value; public các mục LstTravel get => lstTravel; phối => lstTravel = value; public List_Driver_DAO() các mục lstTravel; private danh mục lstDriver_Motobike; private danh sách lstDriver_Car; private danh sách lstDriver_TaxiCar; public menu ShowListDriver() string fileName = Static_Instance.directory + "\XML\data_Driver.xml"; menu lstDriver = new List(); LstDriver_Motobike = new List(); LstDriver_Car = new List(); LstDriver_TaxiCar = new List(); LstTravel = new List(); XmlDocument reader = new XmlDocument(); reader.Load(fileName); foreach (XmlNode node in reader.DocumentElement.ChildNodes) Driver_DTO driver = new Driver_DTO(); driver.Id = node<"ID">.InnerText; driver.Name = node<"Name">.InnerText; driver.UserName = node<"UserName">.InnerText; driver.PassWord = node<"Password">.InnerText; driver.Telephone = node<"Telephone">.InnerText; driver.Type_Driver = Static_Instance.checkTypeCar(node<"Type_Driver">.InnerText); string type = node<"Type_Driver">.InnerText; driver.Location_Driver = node<"Location">.InnerText; driver.Status = Static_Instance.checkStatus(node<"Status">.InnerText); Travell_DTO travell = new Travell_DTO(driver.Name, driver.UserName, driver.PassWord, driver.Telephone, driver.Status, driver.Id, driver.Type_Driver, driver.Location_Driver, "", "", "", DateTime.Now.ToString(), DateTime.Today.ToString()); LstTravel.Add(travell); lstDriver.Add(driver); if (type == "0") Driver_Motobike_DTO driver_Motobike = new Driver_Motobike_DTO(driver.Name, driver.UserName, driver.PassWord, driver.Telephone, driver.Status, driver.Id, driver.Type_Driver, driver.Location_Driver); driver_Motobike.Type_Driver = "Xe máy"; LstDriver_Motobike.Add(driver_Motobike); else if (type == "1") Driver_Car_DTO driver_Car = new Driver_Car_DTO(driver.Name, driver.UserName, driver.PassWord, driver.Telephone, driver.Status, driver.Id, driver.Type_Driver, driver.Location_Driver, int.Parse(node<"Slot">.InnerText)); driver_Car.Type_Driver = "Xe ô tô"; LstDriver_Car.Add(driver_Car); else Driver_TaxiCar_DTO driver_TaxiCar = new Driver_TaxiCar_DTO(driver.Name, driver.UserName, driver.PassWord, driver.Telephone, driver.Status, driver.Id, driver.Type_Driver, driver.Location_Driver, int.Parse(node<"Weight">.InnerText)); driver_TaxiCar.Type_Driver = "Xe ô tô tải"; LstDriver_TaxiCar.Add(driver_TaxiCar); return lstDriver; //........................................................ //..............INSERT..............// //..............UPDATE..............// //..............DELETE..............// //........................................................Vậy là mình đã mô phỏng ngừng cách kết cấu một chương trình sử dụng quy mô 3 lớp. Nếu có sai sót thì ước ao mọi người góp ý thêm ạ.Cảm ơn bạn đã đọc bài viết này.