LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 2
Ớ MÔ HÌNH ĐA L P (Multi Layers)
ộ N i dung
Phân biệt 3-tier, 3-layer Vai trò và nhiệm vụ của mỗi layer Quản lý ngoại lệ trong mô hình 3-layer
3tiers and 3layers
Tier cho thấy một sự tách biệt vật lý của các
thành phần, có thể có nghĩa là các assemblies khác nhau như DLL, EXE,…trên cùng một máy chủ hoặc nhiều máy chủ.
3tiers and 3layers
Layer cho thấy sự phân cách hợp lý của các
thành phần, như vậy là có các namespaces và các class riêng biệt Database Access Layer, Business Logic Layer and User Interface Layer.
3tiers and 3layers
3tiers and 3layers
Physical view
Logical view
GUI
Application + Data
Business logic
Data Access
Data
1tier, 3layer
Physical view
Logical view
GUI
Client tier
Business logic
Data Access
Data
Data tier
2tier, 3layer
GUI
Browsers
Presentation tier
Local clients
i
Web Server
i
Application
Web Server
Web
i
i
w e v l a c g o L
w e v l a c s y h P
Business logic
Business tier
Data Access
Data tier
Data
3tier, 3layer
ủ Vai trò c a các layer
Thu thập và hiển thị thông tin cho người dùng
cuối.
Không sử dụng trực tiếp các dịch vụ của lớp
Data Acces.
Sử dụng các dịch vụ do lớp Business Logic
cung cấp.
Ở lớp này, chúng ta có thể bỏ qua các ràng buộc, các logic nghiệp vụ của ứng dụng.
GUI (Presentation) Layer:
ủ Vai trò c a các layer
Lớp này thực hiện các nghiệp vụ chính của hệ thống (Ví dụ: kiểm tra các yêu cầu nghiệp vụ trước khi cập nhật dữ liệu)
Sử dụng các dịch vụ do lớp Data Access cung
cấp.
Cung cấp các dịch vụ cho lớp Presentation
Business Logic Layer:
ủ Vai trò c a các layer
Lớp này thực hiện các công việc liên quan
đến lưu trữ và truy xuất dữ liệu của ứng dụng. Cung cấp các dịch vụ cho lớp Business Logic
sử dụng.
Sử dụng các dịch vụ của các hệ quản trị cơ sở dữ liệu như MySql, SQL Server, Oracle,… để thực hiện nhiệm vụ của mình.
Data Access Layer:
ư ọ Các l u ý quan tr ng
Phân biệt vai trò Business Layer và khái niệm
“xử lý”
Mỗi Layer vẫn có xử lý riêng, đặc trưng của
Layer đó
Đôi khi việc quyết định 1 xử lý nằm ở layer
nào chỉ mang tính chất tương đối
Presentation
Business logic
Data Access
Data Transfer Object (DTO)
Data
Các giá trị, dòng, bảng
ữ ệ ổ ạ Vi c trao đ i liên l c gi a các layer
Presentation
Business logic
Data Transfer Object (DTO)
Data Access
Data
ự ữ ụ ộ S ph thu c gi a các layer
ấ ủ Tính ch t c a mô hình 3layer
Mã lệnh (code) tường minh Dễ bảo trì Dễ phát triển Dễ bàn giao
GUI
Error messages
Errors while treating data input
GUI layer Error Handling
Log
Thrown business exceptions
Business
Errors while treating in business layer
Business Error Handling
Database error codes
Database errors while executing
Database
Database Error Handling (controlled by DBMS)
Error Handling
ạ ệ ả Qu n lý ngo i l
Xử lý nội bộ trong layer đó “Ném” ngoại lệ lên layer “cao hơn” Không xử lý
Ngoại lệ có thể xảy ra ở bất kỳ layer nào Khi ngoại lệ xảy ra ở một layer thì:
Khi một layer nhận ngoại lệ từ một layer “thấp
hơn” Xử lý nội bộ “Ném” ngoại lệ lên layer “cao hơn” Không xử lý
ụ ể ứ Phát tri n ng d ng
Business Logic Layer
Data Access Layer
Data Transfer Object
Presentation Layer
ụ ể ứ Phát tri n ng d ng
ụ ể ứ Phát tri n ng d ng
Các lớp DTO
Nội dung mỗi lớp gồm:
• Fields • Các phương thức khởi tạo. • Các phương thức set, get
VD: SanPhamDTO, LoaiSanPhamDTO
ụ
ể ứ Phát tri n ng d ng
Các lớp DAL
Ứng với mỗi bảng trong database tạo một
class DAL tương ứng.
VD: SanPhamDAL, LoaiSanPhamDAL
ụ
ể ứ Phát tri n ng d ng
Các lớp BLL
Tạo các class giao tiếp với lớp Presentation Sử dụng các dịch vụ ở lớp DAL để xử lý
nghiệp vụ.
VD: SanPhamBLL, LoaiSanPhamBLL
ụ
ể ứ Phát tri n ng d ng
Các lớp PL
Giao tiếp với người dùng. Sử dụng các dịch vụ do lớp Business cung
cấp.
VD: Xuất ra màn hình.
ụ ể ứ Phát tri n ng d ng
ụ ể ứ Phát tri n ng d ng