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

3­tiers and 3­layers

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ủ.

3­tiers and 3­layers

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.

3­tiers and 3­layers

3­tiers and 3­layers

Physical view

Logical view

GUI

Application + Data

Business logic

Data Access

Data

1­tier, 3­layer

Physical view

Logical view

GUI

Client tier

Business logic

Data Access

Data

Data tier

2­tier, 3­layer

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

3­tier, 3­layer

ủ 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 3­layer

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

DEMO