Tải bản đầy đủ (.pptx) (16 trang)

Thiết kế phần mềm hướng đối tượng VISITOR 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 (1.23 MB, 16 trang )

Trường Đại Học Sư Phạm Kỹ Thuật TP. HCM
Khoa Công Nghệ Thông Tin

Thiết Kế Phần Mềm Hướng Đối Tượng

VISITOR
PATTERN

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

1


 ĐẶT VẤN ĐỀ
 ĐỊNH NGHĨA
 CẤU TRÚC VÀ CÁC THÀNH PHẦN
NỘI DUNG

 TÍNH CHẤT ĐẶC THÙ
 ƯU ĐIỂM & KHUYẾT ĐIỂM
 LĨNH VỰC ÁP DỤNG
 CÁC MẪU LIÊN QUAN
 CHƯƠNG TRÌNH DEMO

2


ĐẶT VẤN ĐỀ

3



ĐỊNH NGHĨA
 Là mẫu thiết kế thuộc Behavior Pattern
 Cho phép định nghĩa các thao tác (operations)
trên một tập các đối tượng (object) không
cùng kiểu mà không làm thay đổi định nghĩa
về lớp của các đối tượng đó.
 Định nghĩa các operations trên các lớp visitors

4


5

Khi nào nên sử dụng Visitor Pattern ?
 Tạo ra các chức năng mới với các đối
tượng đã có sẵn trong lớp mà không cần
thay đổi các lớp đó


CẤU TRÚC

6

 Element:
ConcreteVisitor:
ObjectStructure:
ConcreteElement:
Visitor: là 1 interface.
Override

lại
các
operation


Đưathể
1rainterface
liệt
1lại
Visit
kêAccept
các
operation
định
thành
nghĩa
phần
cho
của
Accept
mỗi cha.

lớp
cha,
operation
ConcreteVisitor.
các operation này
Mỗi
phương
thức

như
thế lớp

Các
Cung
cũng
Operation
operation
mang
cấp này
một
1
nhận
visitor
này
giao
dạng
mang
diện
như


1
nhiệm
vụcầu
xử
lý đối
trên
thực
visitor

mức
đối
gửi số
yêu
cao
như

làVisit
cho
1
tới
phép
sốcác
Visistor.
Visitor
thể
lớp
tương
ứng.
thăm
Nó của
cho
các
thành
phép
phần
visitor
của
quyết
nó.


định thể
lớp làcụ một
thể của
composite
thành
hoặc
phần Visit.
một bộ sưu tập như
danh sách hay tập hợp.


CÁC TÍNH CHẤT ĐẶC THÙ
 Cung cấp thiết kế linh hoạt, việc mở rộng chức
năng mà không làm thay đổi cấu trúc đối
tượng.
 Các hành động đều thực hiện trên các
ConcreteVisitor.

7


CÁC TÍNH CHẤT ĐẶC THÙ
 Accept cũng được định nghĩa là lớp ảo với
tham số truyền có kiểu là visitor.
 Cấu trúc đối tượng rất ít thay đổi. Việc thay đổi
các lớp cấu trúc đối tượng yêu cầu xác định
lại interface cho tất cả các visitor

8



ƯU ĐIỂM
 Làm cho việc thêm các operation mới dễ dàng
 Các thuật toán, cách sử dụng cấu trúc dữ liệu
sẽ được ẩn thông qua việc sử dụng visitor
 Visitor tập hợp các phương thức liên quan lại
với nhau

9


KHUYẾT ĐIỂM

10

 Việc thêm mới lớp ConcreteElement là rất khó
 Phá vỡ tính đóng góiVisitor
Visit ( Warrior )
Visit ( Monster )
Visit ( Wizard )

Damaged
Visit ( Warrior )
Visit ( Monster )
Visit ( Wizard )

Move
Visit ( Warrior )
Visit ( Monster )

Visit ( Wizard )

Reduce
Damage
Visit
( Warrior
)
Visit
( Monster )
Visit


LĨNH VỰC ÁP DỤNG
 Người dùng muốn thực hiện thao tác trên các
đối tượng thì cần các lớp cụ thể của chúng.
 Muốn định nghĩa các operation mới trên các
cấu trúc.
 Muốn tránh “làm hỏng” các lớp của chúng khi
thực hiện các operation.

11


CÁC MẪU LIÊN QUAN
Composite:

12


13



14

CHƯƠNG TRÌNH
DEMO


TÀI LIỆU THAM KHẢO
 Design Patterns Elements of Reusable ObjectOriented Software – GangsOfFour
 Head First Design Patterns
 />ttern-chuyen-vieng-tham-ky-bi
/
 https://

15


16

Cảm ơn thầy
và các bạn đã lắng
nghe !



×