business component
DESCRIPTION
Business Component. Nội dung. Đưa ra các yêu cầu của hệ thống. Phát triển CSDL của hệ thống. Xây dựng mô hình tương tác các thành phần với các chức năng được đóng gói trong hệ thống. Các đối tượng nghiên cứu. Hiểu được kiến trúc mô hình N – tầng. Hiểu được cách sử dụng các thành phần. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/1.jpg)
Business Component
![Page 2: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/2.jpg)
Nội dung
• Đưa ra các yêu cầu của hệ thống.
• Phát triển CSDL của hệ thống.
• Xây dựng mô hình tương tác các thành phần với các chức năng được đóng gói trong hệ thống.
![Page 3: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/3.jpg)
Các đối tượng nghiên cứu
• Hiểu được kiến trúc mô hình N – tầng.
• Hiểu được cách sử dụng các thành phần.
• Tạo ra mô hình các thành phần trong .NET, sử dụng C# để tương tác CSDL.
![Page 4: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/4.jpg)
Giới thiệu
• Trình bày kiến trúc N – tầng và các thành phần, hiểu được làm cách nào có thể được sử dụng trong hệ phân tán.
• Xây dựng mô hình tương tác giữa thành phần với các chức năng chính được đóng gói trong hệ thống.
![Page 5: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/5.jpg)
Kiến trúc N – tầng
• Kiến trúc N – tầng mô tả một cách logic sự phân biệt của tầng presentation, tầng business, tầng dữ liệu.
![Page 6: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/6.jpg)
Kiến trúc N – tầng
• Tầng dữ liệu: quản lý dữ liệu.– Quản lý CSDL đã được xây dựng
• Tầng presentation: Điều khiển những gì mà các user thấy được và có thể thực hiện trong hệ thống– Sẽ xây dựng một vài ứng dụng cho tầng này
• Tầng Business (tầng giữa): điều khiển mọi thứ còn lại.
![Page 7: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/7.jpg)
Tầng Business
• Tầng Business chứa các chức năng chính của hệ thống, gồm:– Business rule
– Work Flows
• Cung cấp cách điều khiển việc truy cập dữ liệu
• Xử lý dữ liệu và tạo ra sự hợp lệ dữ liệu đầu vào.
• Tầng business sẽ được định nghĩa bằng cách sử dụng class
• Thư viện các class mô tả tầng business được thực thi như những component.
![Page 8: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/8.jpg)
Component
• Các component bao gồm một tập các class được xây dựng đầy đủ của ứng dụng.
• Có thể được tái sử dụng
• Phải được đóng gói tất cả các thuộc tính.
• Phải cung cấp một interface cho phép được truy cập bởi các client (thậm chí là được truy xuất từ các thành phần khác)
![Page 9: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/9.jpg)
Bắt đầu
• Chúng ta tạo tạo các component trong tầng Business như là một thư viện trong VS2005
• Tạo một project–Mở Microsoft Visual Studio 2005
– Vào File \ New Project
– Chọn kiểu project là Visual C# và sau đó chọn Class Library
– Tên của project là PTSLibrary trong cùng một vị trí của project PTS
![Page 10: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/10.jpg)
Use – Case Diagram
![Page 11: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/11.jpg)
Class Diagram
![Page 12: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/12.jpg)
Tạo Project
![Page 13: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/13.jpg)
Cấu trúc PTSLibrary
• Có ba kiểu class có trong project– Business Object
– DAO (Data Access Object)
– Các Object giao tiếp
![Page 14: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/14.jpg)
Business object
• Business object hoặc là domain object là các mô tả trừu tượng các thực thể của hệ thống.
• Mô tả các khái niệm quan trọng về hoạt động tương tác của hệ thống tạo thành mô hình.
• Trong hệ thống, đây là sự trừu tượng hóa của các đối tượng quản lý liên quan đến các khai niệm như: project, team, task,…
![Page 15: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/15.jpg)
Business object
• Business object trong thành phần hệ thống là:– Project
– Task
– Subtask
– User
– Team
– TeamLeader
– TeamMember
– Customer
– Status
![Page 16: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/16.jpg)
Business object
• Một số business object có cùng tên với các thực thể trong mô hình dữ liệu, và một số business object không có trong mô hình dữ liệu.
• Mô hình dữ liệu quan hệ yêu cầu các tiếp cận khác hơn với mô hình hướng đối tượng.–Mô hình đối tượng dựa trên các nguyên lý về CNPM.
–Mô hình quan hệ dưa trên các nguyên lý toán học
![Page 17: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/17.jpg)
DAO
• DAO – Data Access Object cung cấp một giao tiếp trừu tượng đến CSDL.
• Chúng ta cần viết code và kết hợp qua lại giữa mô hình business class và CSDL– Không phải lẫn lộn giữa business logic và SQL code
– Không phải viết lại tất cả các business class nếu có thay đổi trong CSDL.
![Page 18: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/18.jpg)
DAO
• DAO bao gồm tất cả các lệnh SQL để đọc và ghi vào CSDL.
• Có thể có một đối tượng DAO cho project, nhưng chúng ta có nhiều dạng user, thực hiện các dữ liệu khác nhau, nên chúng ta có đối tượng DAO với các vai trò:– SupperDAO.
– AdminDAO.
– CustomerDAO
– ClientDAO (Các nhóm trưởng sử dụng .NET /Java)
![Page 19: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/19.jpg)
Các đối tượng giao tiếp – Façade Objects
• Project PTSLibrary là một thư viện các lớp.– Không có giao diện đồ họa
– Được sử dụng bởi các section khác nhau trong hệ thống và không biết được cấu trúc bên trong của các thành phần business
• Hệ thống cung cấp các giao tiếp đến các thành phần business thông qua các đối tượng giao tiếp.
![Page 20: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/20.jpg)
Các đối tượng giao tiếp – Façade Objects
• Chúng ta sẽ có một lớp giao tiếp ứng với mỗi dạng user để truy cập vào các thành phần business– Cho phép chúng ta thấy được từng vai trò của các user gồm chỉ
những gì cần phải thấy.(ví dụ như: một nhóm trưởng không thể tạo ra một dự án, và chỉ có PM mới có thể thực hiện được).
• Các lớp giao tiếp bao gồm:– PTSAdminFacade
– PTSClientFacade
– PTSCustomerFacade
– PTSSuperFacade
![Page 21: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/21.jpg)
Tạo class
• Xóa file Class1.cs mặc định và tạo Class như sau
![Page 22: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/22.jpg)
Tạo class
• Cửa số Solution Explorer sẽ gồm các Class sau:
• Với mỗi lớp được tạo ra chỉ chứa
các câu lệnh mặc định, các khai
báo namespace, và khai báo class
• Chúng ta chỉ thực thi một tập nhỏ
các chức năng được yêu cầu để
minh họa cách sử dụng trong hệ
thống
![Page 23: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/23.jpg)
Class User
• Lớp này mô tả các user chung của hệ thống:
• Đây là lớp cha (super) của tất
cả các lớp mô tả các user, gồm: – Customer
– TeamLeader
– TeamMember
• Ba lớp trên kế thừa từ lớp User
![Page 24: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/24.jpg)
Class User
• Lớp này có hai biến protected:– Username
– Password
• Các biến này chỉ cho phép đọc
• Cho các lớp con kế thừa và sử
dụng hai biến này là private
![Page 25: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/25.jpg)
Class Customer
• Lớp này mô tả các khách hàng.
• Chức năng của lớp này đơn giản, bao gồm;– Lưu lại tên và hiển thị lại khi yêu cầu.
– Chức năng này đã tồn tại trong lớp User, vì vậy tạo ra sự thừa kế từ lớp User
• Mỗi thể hiện của lớp này được đặt lại tên, vì vậy cần tạo ra phương thức khởi tạo cho phép thực hiện điều này
![Page 26: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/26.jpg)
Class Customer
• Các lệnh cần phải viết là:– Tạo lớp Customer kế thừa từ lớp User
– Thêm một phương thức khởi tạo
để lấy tên và ID
![Page 27: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/27.jpg)
Class Customer
Lớp Customer kế thừa từ lớp User
name và id được kế thừa từ lớp User
![Page 28: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/28.jpg)
Class TeamLeader
• Mô tả một nhóm trưởng
của các nhóm bên trong
hoặc các nhóm bên ngoài
Lớp được kế thừa từ lớp User
Thêm vào phương thức khởi tạo cho lớp TeamLeader
![Page 29: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/29.jpg)
Class TeamLeader
Tạo một trường mới
Cho phép truy cập đến TeamID
Phương thức khởi tạo
![Page 30: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/30.jpg)
Class Team
• Mô tả một nhóm bên trong
hoặc nhóm bên ngoài
đang làm việc cho
công ty
• Các trường khác gồm:
id, location,
name
Được liên kết đến TeamLeader
![Page 31: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/31.jpg)
Class Team
![Page 32: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/32.jpg)
Class Team
![Page 33: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/33.jpg)
Enum Status
• Enum cho phép tạo ra các giá trị khác nhau
• Lưu trữ một tập các tên của các thể hiện
• Có thể được chuyển đổi thành một số nguyên integer
• Dễ dàng để đọc và xử lý:– if(currentStatus == 3)
– if(currentStatus == Status.Completed)
![Page 34: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/34.jpg)
Enum Status
• Trạng thái:
task, subtask
Sự thay đổi từ Class sang Enum
Các số nguyên được gán cho từng trạng thái được ánh xạ đến trường StatusID trong bảng Status của CSDL
![Page 35: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/35.jpg)
Class Task
• Mô tả công việc bên trong của
project và được phân công cho
từng nhóm và có thể được chia
thành các subtask
• Các trường khác: name, taskID
Liên kết đến Status thông qua mối kết hợp
![Page 36: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/36.jpg)
Class Task
Chú ý có sử dụng kiểu dữ liệu Guid
![Page 37: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/37.jpg)
Class Task
![Page 38: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/38.jpg)
Class Project
• Mô tả một dự án
liên kết đến Customer và
Task thông qua mối kết hợp
• Có hai phương thức khởi tạo– Phụ thuộc trên ngữ cảnh của
đối tượng Project được sử dụng
![Page 39: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/39.jpg)
Class Project
• Chú ý các kiểu dữ liệu
khai báo các biến
• task được khai báo generic– Cho phép tạo ra kiểu Collections
– Task là một danh sách chứa
các đối tượng kiểu Task
– Khai báo sử dụng <Type>Danh sách chứa các đối tượng kiểu Task
![Page 40: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/40.jpg)
Class Project
• Hai phương thức khởi tạo (một cho Customer và một cho task)
![Page 41: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/41.jpg)
Tạo DAO – Data Access Object
• Chúng ta lưu tất cả các
đối tượng DAO trong thư
mục con của project.
• Tạo một folder DAO trong
Project PTSLibrary
![Page 42: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/42.jpg)
Tạo DAO – Data Access Object
• Tạo ra 4 class mới trong thư mục DAO:– SuperDAO
– AdminDAO
– CustomerDAO
– ClientDAO
• Các lớp này có code tương tác với CSDL– Để truy cập đến các lớp được yêu cầu,
ta cần phải thêm một namespace sau
vào trong mỗi lớp DAO:System.Data và System.Data.SqlClient
![Page 43: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/43.jpg)
Truy cập đến CSDL
• Để truy cập đến CSDL đã được tạo, cần phải thêm đối tượng datasource
• Phải chắc chắn rằng SQL Server đang hoạt động và CSDL truy cập được.
• Chọn Add New Data Source từ menu Data
![Page 44: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/44.jpg)
Truy cập đến CSDL
• Tiếp tục, ta chọn mục Database
![Page 45: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/45.jpg)
Truy cập đến CSDL
• Trong màn hình kế tiếp click
vào button new Connection
và chọn Server và CSDL.
• Sau đó kiểm tra lại kết nối
đến CSDL tại button
Test Connection
Chọn Server
Chọn DataBase
![Page 46: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/46.jpg)
Truy cập đến CSDL
• Chọn check box để đồng ý lưu kết nối
• Tên của kết nối là ConnectionString
![Page 47: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/47.jpg)
Truy cập đến CSDL
• Click chọn các check box của các table và click Finish
• Bây giờ ta đã có
kết nối đến CSDL
và chuỗi kết nối
được tạo trong file
Settings.settings
![Page 48: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/48.jpg)
DAO
• Cung cấp một giao tiếp trừu tượng đến data source
• DAO cung cấp sự liên kết rõ ràng giữa mô hình business và mô hình dữ liệu.
• DAO sẽ chứa tất cả các lệnh SQL để đọc và ghi dữ liệu
Cấu trúc UML của các đối tượng DAO
![Page 49: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/49.jpg)
Class – Super DAO
• Là lớp DAO cơ sở
• Chứa hai phương thức cung
cấp hai thuộc tính được chia sẻ
của các đối tượng DAO:– GetCustomer
– GetListOfTask
![Page 50: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/50.jpg)
Class – Super DAO – GetCustomer Method
Khai báo các đối tượng kết nối CSDL
Câu lệnh SQL truy vấn thông tin khách hàng
ConnectionString
Câu lệnh SQL trả về một dòng dữ liệuTạo một thể hiện của bảng CustomerGiá trị trả về của phương thức
![Page 51: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/51.jpg)
Class – Super DAO – GetListTask Method
Chú ý rằng sử dụng dấu nháy đơn: ProjectID là kiểu GUID và không phải là một số
Kết quả trả về có thể nhiều hơn một dòngDuyệt qua tất cả các dòng dữ liệu
Phương thức khởi tạo của Task cần Guid và Task
![Page 52: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/52.jpg)
Class – CustomerDAO
• Cung cấp các phương thức truy cập CSDL ứng với vai trò của khách hàng.
• Kế thừa từ lớp SuperDAO
• Hai phương thức:– Authenticate
– GetListOfProjects
![Page 53: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/53.jpg)
CustomerDAO – Phương thức Authenticate
Thành phần {0} được thay thế bởi giá trị của username
Cần chắc chắn khi đọc từ SQL Datareader thì phải có một CustomerID được trả về, nếu không thì trả về 0
![Page 54: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/54.jpg)
CustomerDAO – Phương thức GetListProject
Trong phương thức này tạo ra hai tập dữ liệu:1.Các project2.Tất cả các task của từng project
![Page 55: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/55.jpg)
Class – ClientDAO
• Tương tự như lớp CustomerDAO.
• Cung cấp các phương thức truy cập CSDL đối với vai trò của TeamLeader
• Kế thừa từ lớp SuperDAO
• Hai phương thức:– Authenticate
– GetListOfProjects
• Lớp này cung cấp việc
truy cập CSDL cho các
Java Client
![Page 56: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/56.jpg)
Class – ClientDAO
• Câu lệnh SQL trong phương thức Authenticate.sql = String.Format("SELECT DISTINCT Person.Name, UserId, TeamId FROM Person INNER JOIN Team ON (Team.TeamLeaderId = Person.UserId) WHERE Username='{0}' AND Password='{1}'", username, password);
• Phương thức GetListOfProjects trả về tất cả các project của từng nhóm (không phải các project của từng khách hàng như trong lớp CustomerDAO)
public List<Project> GetListOfProjects(int teamId)
![Page 57: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/57.jpg)
Class – AdminDAO
• Cung cấp phương thức truy cập CSDL ứng với vai trò của Administrator
• Kế thừa từ lớp SuperDAO
• Có 6 phương thức:– Authenticate
– CreateProject
– CreateTask
– GetListOfCustomers
– GetListOfProjects
– GetListOfTeams
![Page 58: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/58.jpg)
AdminDAO – Phương thức CreateProject
Tạo ra một Guid mới
Thực thi câu lệnh INSERT thay vì câu lệnh SELECT
![Page 59: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/59.jpg)
Class – AdminDAO
• Câu lệnh SQL đối với phương thức Authenticate chắc chắn rằng chỉ có Administrator có thể thực thi.
• Phương thức CreateTask chèn một task mới vào CSDL.
• GetListOfCustomer trả về tất cả khách hàng trong CSDL.
• GetListOfProjects chỉ trả về các project tương ứng với PM đã tạo ra.
• GetListOfteams trả về tất cả các nhóm có trong CSDL.
![Page 60: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/60.jpg)
Các đối tượng giao tiếp
• Cung cấp các giao tiếp đến các thành phần Business.
![Page 61: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/61.jpg)
Class – PTSSuperFacade
• Đây là lớp giao tiếp cơ sở.
• Chứa các phương thức cung cấp các thuộc tính được chia sẻ bởi các lớp giao tiếp khác
• Phương thức:– GetListOfTask
![Page 62: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/62.jpg)
Class – PTSSuperFacade
Truy cập một lớp trong thư mục con DAO
Giá trị trả về là một mảng các Task
![Page 63: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/63.jpg)
Class – PTSCustomerFacade
• Cung cấp một giao tiếp public cho dịch vụ web của khách hàng
• Kế thừa từ lớp PTSSuperFacade
• Một phương thức:– GetListOfProjects
![Page 64: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/64.jpg)
Class – PTSCustomerFacade
Đưa ra việc khởi tạo từ lớp cha
Lớp giao tiếp gọi đối tượng DAO. Điều này cho phép chúng ta chỉ ra các lớp hiện hành từ DAO
![Page 65: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/65.jpg)
Class – PTSClientFacade
• Cung cấp một giao tiếp public cho dịch vụ web client sử dụng Java
• Kế thừa từ lớp PTSSuperFacade.
• Có hai phương thức:– GetListOfProject
– Authenticate
![Page 66: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/66.jpg)
Class – PTSClientFacade
Username và password phải được cung cấp
![Page 67: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/67.jpg)
Class – PTSAdminFacade
• Cung cấp một giao tiếp public cho Administrator điều khiển các client
• Kế thừa từ lớp PTSSupperFacade
• Các phương thức– Authenticate
– CreateProject
– CreateTask
– GetListOfCustomers
– GetListOfProjects
– GetListOfTeams
![Page 68: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/68.jpg)
Class – PTSAdminFacade
Username và password phải được cung cấp
![Page 69: Business Component](https://reader035.vdocuments.net/reader035/viewer/2022062808/56815231550346895dc076bd/html5/thumbnails/69.jpg)
Tổng kết
• Trong phần này đã làm việc trên các thành business của project PTSLibrary
• Ta phải build project bằng cách chọn Build PTSLibrary từ menu Build và sửa lại tất cả các lỗi.