1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

11 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mẫu trang trí Decorator Pattern
Trường học Trường Đại học Sư phạm Kỹ Thuật Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ phần mềm
Thể loại Báo Cáo Môn Học
Năm xuất bản 2023
Thành phố TP.Hồ Chí Minh
Định dạng
Số trang 11
Dung lượng 606,3 KB
File đính kèm Docorator Pattern.zip (21 MB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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á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á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á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á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

Trang 1

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

Trang 2

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

2

Ý

nghĩa

Cấu

trúc

Điều kiện SD

Ưu-Khuyết

Ví dụ

Mục đích

Trang 3

Ý

nghĩa

Cấu

trúc

Điều kiện

SD

Ưu-Khuyết

Ví dụ

Mục đích

Ý 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

3

Trang 4

CẤU

Component

+ Operati on(): voi d

Decorator

# component: Component + Operati on(): voi d

+ SetComponent(Com ponent): voi d

ConcreteDecoratorA

- addedState: stri ng + Operati on(): voi d

ConcreteDecoratorB

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

ConcreteComponent

+ Operati on(): voi d

#component

Hình: Cấu trúc

Ý

nghĩa

Cấu

trúc

Điều kiện

SD

Ưu-Khuyết

Ví dụ

Mục đích

Trang 5

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

Ý

nghĩa

Cấu

trúc

Điều kiện

SD

Ưu-Khuyết

Ví dụ

Mục đích

Trang 6

Đ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

• 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

Ý

nghĩa

Cấu

trúc

SD

Ưu-Khuyết

Ví dụ

Mục đích

Trang 7

ƯU ĐIỂM - KHUYẾT ĐIỂM

Ưu điểm:

• 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

Ý

nghĩa

Cấu

trúc

Điều kiện

SD

Ưu-Khuyết

Ví dụ

Mục đích

Trang 8

ƯU ĐIỂM - KHUYẾT ĐIỂM (TT)

Khuyết điểm:

• 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

8

Ý

nghĩa

Cấu

trúc

Điều kiện

SD

Ưu-Khuyết

Ví dụ

Mục đích

Trang 9

VÍ DỤ:

class Logical View

LightDecorator

- costOflight: decimal = 60000 + CalculateCost(): decimal + LightDecorator(Icar)

GPSDecorator

- costOfGpsDevice: decimal = 30000 + CalculateCost(): decimal

+ GPSDecorator(Icar)

HifiDecorator

- costOfAmpli: decimal = 20000

- costOfSpeaker: decimal = 90000 + CalculateCost(): decimal + HifiDecorator(Icar)

decoratorCar

# car: Icar + CalculateCost(): decimal + decoratorCar(Icar)

simpleCar

- costOfChassis: decimal = 100000

- costOfEngine: decimal = 50000

- costOfWheels: decimal = 50000 + CalculateCost(): decimal

«interface»

Icar

+ CalculateCost(): decimal

#car

9

Ý

nghĩa

Cấu

trúc

Điều kiện

SD

Ưu-Khuyết

Ví dụ

Mục đích

Trang 10

VÍ DỤ (TT)

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 ngoà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

Ý

nghĩa

Cấu

trúc

Điều kiện

SD

Ưu-Khuyết

Ví dụ

Mục đích

Trang 11

THE END

THANK YOU ALL FOR WATCHING

11

Ngày đăng: 05/09/2023, 08:45

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w