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

Báo Cáo Môn Học Thiết Kế Phần Mềm Hướng Đối Tượng ĐỀ TÀI Mẫu trang trí DECORATOR 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 (360.78 KB, 11 trang )

TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TP.HỒ CHÍ MINH
KHOA CƠNG NGHỆ THÔNG TIN
CHUYÊN NGÀNH CÔNG NGHỆ PHẦN MỀM
MÔN THIẾT KẾ PHẦN MỀM HƯỚNG ĐỐI TƯỢNG

ĐỀ TÀI:
DECORATOR

1


MỤC
ĐÍCH


Gắn các chức năng bổ sung cho các đối
tượng (gán động).



Decorator cung cấp một số thay đổi mềm
dẻo cho các phân lớp để mở rộng thêm
các chức năng.

Mục đích
Ý
nghĩa
Cấu
trúc
Điều kiện SD
ƯuKhuyết


Ví dụ

2


Ý NGHĨA


Bổ sung trách nhiệm cho đối tượng tại thời
điểm thực thi.



Đây được xem là sự thay thế hiệu quả cho
phương pháp kế thừa trong việc bổ sung
trách nhiệm cho đối tượng và mức tác động
là ở mức đối tượng thay vì ở mức lớp như
phương pháp kế thừa.

Mục đích
Ý
nghĩa
Cấu
trúc
Điều
kiện
SD
ƯuKhuyết
Ví dụ


3


CẤU
TRÚC

class Logical View

Component
+

#component

Operati on(): voi d

Mục đích
Ý
nghĩa
Cấu
trúc
Điều
kiện
SD
ƯuKhuyết
Ví dụ

Decorator

ConcreteComponent
+


Operati on(): voi d

#

com ponent: Com ponent

+
+

Operati on(): voi d
SetCom ponent(Com ponent): voi d

ConcreteDecoratorA
-

addedState: stri ng

+

Operati on(): voi d

ConcreteDecoratorB
+
+

AddedBehavi or(): voi d
Operati on(): voi d

Hình: Cấu trúc

mẫu.

4


Mục đích
Ý
nghĩa
Cấu
trúc
Điều
kiện
SD
ƯuKhuyết
Ví dụ

CẤU TRÚC
(TT)
• Component: là một interface chứa các
phương thức ảo (ở đây là Operation).
• ConcreteComponent: là một lớp implement
Component, cài đặt phương thức cụ thể
(Operation được cài đặt tường minh).
• Decorator: là một lớp ảo, implement
Component đồng thời cũng chứa 1 thể hiện
của Component, phương thức Operation
trong Decorator sẽ được thực hiện thơng qua
thể hiện này.
• ConcreteDecoratorX: là các lớp kế thừa từ
Decorator, khai báo tường minh các phương

thức, đặc biệt trong các lớp này khai báo
tường minh các “trách nhiệm” cần thêm vào 5


ĐIỀU
KIỆN
SỬ
DỤNG
• Khi bạn muốn thay đổi động mà khơng ảnh hưởng (tác
động) đến các đối tượng khác.
Mục đích
Ý
nghĩa
Cấu
trúc
Điều
kiện
SD
ƯuKhuyết
Ví dụ



Khi bạn muốn thêm vào các chức năng hoặc rút bỏ khi
không cần nữa.

6


ƯU ĐIỂM

ĐIỂM
Ưu điểm:
Mục đích
Ý
nghĩa
Cấu
trúc
Điều
kiện
SD
ƯuKhuyết
Ví dụ





-

KHUYẾT

Cung cấp một giải pháp linh hoạt hơn các chức
năng cho 1 đới tượng so với cách thừa kế truyền
thống.
Cung cấp giải pháp để dễ thay đổi hành vi của
đối tượng.
Ngoài ra, bạn sẽ code các chức năng riêng trong
từng class riêng thay vì gộp chung nhiều chức
năng khác nhau vào 1 class làm cho các thành
phần dễ mở rộng hơn trong tương lai.

7


ƯU ĐIỂM - KHUYẾT ĐIỂM
(TT)
Khuyết điểm:
Mục đích



Việc bảo trì là một vấn đề vì nó cung cấp nhiều
loại object của các class chức năng.

Ý
nghĩa
Cấu
trúc
Điều
kiện
SD
ƯuKhuyết
Ví dụ
8


VÍ DỤ:
class Logical View
«interface»
Icar
+ CalculateCost(): decimal


Mục đích
Ý
nghĩa
Cấu
trúc
Điều
kiện
SD
ƯuKhuyết
Ví dụ

#car

decoratorCar
simpleCar
-

# car: Icar

costOfChassis: decimal = 100000
costOfEngine: decimal = 50000
costOfWheels: decimal = 50000

+ CalculateCost(): decimal
+ decoratorCar(Icar)

+ CalculateCost(): decimal

HifiDecorator


GPSDecorator
-

costOfGpsDevice: decimal = 30000

+ CalculateCost(): decimal
+ GPSDecorator(Icar)

-

costOfAmpli: decimal = 20000
costOfSpeaker: decimal = 90000

+ CalculateCost(): decimal
+ HifiDecorator(Icar)

LightDecorator
-

costOflight: decimal = 60000

+ CalculateCost(): decimal
+ LightDecorator(Icar)

9


VÍ DỤ (TT)


Mục đích
Ý
nghĩa
Cấu
trúc
Điều
kiện
SD
ƯuKhuyết
Ví dụ

Một chiếc xe ơ tơ gồm 3 bộ phận cơ bản như
bánh xe, động cơ và khung xe, nhưng ngồi 3 bận
cơ bản đó, để chúng ta có thể “trang trí” thêm
các phụ kiện khác mà không ảnh hưởng đến cấu
trúc của xe lúc đầu, chúng ta sẽ phải dùng đến
Decorator Pattern:





Component: Icar (một interface)
ConcreteComponent: simpleCar
Decorator: decoratorCar
ConcreteDecorator: LightDecorator,
GPSDecorator, HifiDecorator
10



THE END

THANK YOU ALL FOR
WATCHING

11



×