Tải bản đầy đủ (.ppt) (21 trang)

THIẾT kế PHẦN mềm HƯỚNG đối TƯỢNG BRIDGE PATTERN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (359.02 KB, 21 trang )

Trường ĐH Sư Phạm Kỹ Thuật TPHCM
Khoa Công nghệ thông tin
Bộ môn Công nghệ phần mềm

THIẾT KẾ PHẦN MỀM HƯỚNG ĐỐI TƯỢNG

BRIDGE PATTERN

GVHD: Nguyễn Trần Thi Văn

1


&&
Bridge
Bridge

OOP
OOP

Đặt vấn đề

 Yêu cầu tô màu red và blue cho circle và square.

Circl
e

Shape

Bridge


Square
2


&&
Bridge
Bridge

OOP
OOP

1.
2.
3.
4.
5.
6.
7.

Bố cục
Tổng quan
Cấu trúc
Tính chất
Hệ quả, lĩnh vực áp dụng
Ưu điểm, khuyết điểm
Các mẫu liên quan
Demo

3



&&
Bridge
Bridge

OOP
OOP

Tổng quan

Định nghĩa:
Mẫu Bridge là một mẫu thiết kế hướng đối tượng
thuộc loại Structural Patterns, được sử dụng với
tần suất trung bình.
Mục đích :
Phần ảo

OO
P

Chứa
trong
Kế thừa

Phần
thực thi

// Định nghĩa các chức năng

Bridge

// Thực thi các chức năng

4


&&
Bridge
Bridge

OOP
OOP

Tổng quan

Định nghĩa:
Mẫu Bridge là một mẫu thiết kế hướng đối tượng
thuộc loại Structural Patterns, được sử dụng với
tần suất trung bình.
Mục đích :
 Tách rời phần ảo và phần thực thi ra riêng biệt.
 Dễ dàng thay đổi từng phần một cách độc lập
và linh động.
 Che giấu chi tiết của phần thực thi đối với
client.

5


&&
Bridge

Bridge

OOP
OOP

Cấu trúc

 Các lớp/đối tượng tham gia
Abstraction
Implementation
RefineAbstraction
Concretelmplement

6


&&
Bridge
Bridge

OOP
OOP

Cấu trúc

 Các lớp/đối tượng tham gia
Abstraction
Implementation
RefineAbstraction
Concretelmplement


Abstraction: là lớp trừu tượng khai báo các chức năng và cấu trúc cơ bản,
trong lớp này có 1 thuộc tính là 1 thể hiện của giao tiếp Implementation.

7


&&
Bridge
Bridge

OOP
OOP

Cấu trúc

 Các lớp/đối tượng tham gia
Abstraction
Implementation
RefineAbstraction
Concretelmplement

Implementation : là giao tiếp thực thi của lớp các chức năng nào đó của
Abstraction.

8


&&
Bridge

Bridge

OOP
OOP

Cấu trúc

 Các lớp/đối tượng tham gia
Abstraction
Implementation
RefineAbstraction
Concretelmplement

RefineAbstraction: là định nghĩa các chức năng mới hoặc chức năng đã
có trong Abstraction.

9


&&
Bridge
Bridge

OOP
OOP

Cấu trúc

 Các lớp/đối tượng tham gia
Abstraction

Implementation
RefineAbstraction
Concretelmplement

ConcreteImplement: là các lớp định nghĩa tường minh các thực thi trong
lớp giao tiếp Implementation.

10


&&
Bridge
Bridge

OOP
OOP

Cấu trúc

Implementation
Abstraction

extends

extends

RefineAbstraction

implements


implements

Concretelmplement

11


&&
Bridge
Bridge

OOP
OOP

Cấu trúc
Shape redCircle = new Circle(new
Red());
redCircle.draw();

Abstraction

extends

extends

RefineAbstraction

Implementation

implements


implements

Concretelmplement

12


&&
Bridge
Bridge

OOP
OOP

Tính chất

 Tách rời phần xử lý (giải thuật) với phần
chủ thể (nơi thực thi các giải thuật đó).
 Có thể nâng cấp theo từng phần, triển
khai theo từng cặp.
 Có lớp RefinedAbstraction mở rộng giao
diện được định nghĩa bởi Abstraction.
 Mỗi giao diện thực thi sẽ thực thi lại giao
diện nhưng được định nghĩa cụ thể.
13


&&
Bridge

Bridge

OOP
OOP

Hệ quả

 Tách được phần giao diện của đối tượng.
 Cải thiện khả năng mở rộng.
 Ẩn thông tin với các đối tượng Client.

OOP

14


&&
Bridge
Bridge

OOP
OOP

Lĩnh vực áp dụng

 Ẩn chi tiết với các đối tượng “Client”. (Việc thay
đổi thực thi không ảnh hưởng đến client.)
 Thực thi có thể thay đổi trong thời gian thực thi
chứ không phải thời gian thiết kế.
 Muốn có nhiều lớp con với nhiều thực thi từ một

phần ảo.
 Việc mở rộng phần thực và phần ảo được thực
hiện với các lớp con.
 Muốn chia sẻ thực thi trong nhiều đối tượng và
chi tiết giao diện được ẩn với đối tượng.
OOP

15


&&
Bridge
Bridge

OOP
OOP

Ưu & nhược điểm

 Ưu điểm:
 Giảm sự phụ thuộc giữa abstraction và
implementation.
 Giảm số lượng các lớp con không cần thiết.
 Code gọn và giảm kích thước phần thực thi.
 Giao diện và thực thi có thể được thay đổi
một cách độc lập.
 Cải thiện khả năng mở rộng.

OOP


16


&&
Bridge
Bridge

OOP
OOP

Ưu & nhược điểm

 Nhược điểm:
 Tăng độ phức tạp.
 Số lần gọi gián tiếp tăng gấp đôi.
 Ảnh hưởng đến hiệu suất của chương trình.

OOP

17


&&
Bridge
Bridge

OOP
OOP

Các mẫu liên quan


 Abstract Factory: Một Abstract Factory có thể tạo và
cấu hình một mẫu Bridge cụ thể.
 Adapter: Mẫu Adapter hướng tới kết hợp các lớp
không liên quan để chúng làm việc với nhau. Còn
Bridge cho phép phần trừu tượng (phần ảo) và phần
thực thi độc lập với nhau bằng cách tạo ra một cầu
nối giữa hai thứ.

OOP

18


&&
Bridge
Bridge

OOP
OOP

Demo

OOP

19


&&
Bridge

Bridge

OOP
OOP

Tài liệu tham khảo

 Bridge Pattern trong Java, Yuen’s Blog,
/>1-bridge-pattern/

 Bridge pattern, VOER,
/> Design Pattern – Bridge, Nixforest,
/>n-bridge/

OOP

20


&&
Bridge
Bridge

OOP
OOP

OOP

21




×