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

OBJECT ORIENTED ANALYSIS AND DESIGN decorator

23 192 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

Định dạng
Số trang 23
Dung lượng 0,92 MB

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

Nội dung

Giả sử hành vi của món quà Gift là giftRender, khi đó ta sẽ có một interface Giftable thực hiện chức năng là giftRender.. Tên chức năng giftRender sẽ vấn được giữ nguyên, tuy nhiên, tín

Trang 1

University of Technical Education HCMC

Faculty of Information Technology

o0o OBJECT-ORIENTED ANALYSIS AND DESIGN

Decorator

Trang 2

8 Ưu nhược điểm

9 Các mẫu liên quan

10 Demo

Trang 3

1 Đặt vấn đề:

 Chúng ta ít nhiều cũng đã từng tặng quà cho bạn bè và người thân Một món quà khi được bày bán thông thường ở dạng thô như con gấu bông, chiếc xe đồ chơi, cây viết Sau khi mua một món gì đó xong, chúng ta có thể gói quà trong một chiếc hộp Sau đó có thể bọc giấy gói quà bên ngoài cho đẹp Như vậy, một món quà cuối cùng được hình thành theo trình tư như sau: Món quà thô → đóng hộp → gói quà

 Theo trình tự này, sản phẩm mà chúng ta nhận được sẽ gồm 3 phần: món quà, chiếc hộp và giấy gói Tất cả kết hợp lại để tạo ra một món quà đẹp hơn, hấp dẫn hơn, hay nói theo một cách khác, chúng ta đã "decor" món quà trông bắt mắt hơn

Trang 4

2 Giải pháp:

Chúng ta có thể sử dụng decorator pattern để giải quyết vấn đề trên

Giả sử hành vi của món quà (Gift) là giftRender, khi đó ta sẽ có một interface Giftable thực hiện chức năng là giftRender Chúng ta cũng sẽ có 1 class có tên là Gift implement Giftable để thực hiện chức năng giftRender Tên chức năng giftRender sẽ vấn được giữ nguyên, tuy nhiên, tính chất của món quà sẽ được thay đổi, món quà sẽ được bỏ vào hộp và được bọc lại Khi đó, sản phẩm cuối cùng vẫn

có chức năng giftRender và nội dung thực thi trong chức năng đã thay đổi so với lúc

nó còn là thể hiện của class Gift Decorator pattern không làm thay đổi tên hành vi nhưng nó sẽ làm thay đổi kết quả của hành vi Chúng ta có thể xem xét mô hình để hiểu rõ hơn về cấu trúc của Decorator pattern

Trang 7

4 Mục đích sử dụng

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

Trang 8

5 Cấu trúc Decorator

5.1 Cấu trúc, các lớp/đối tượng tham gia:

Trang 9

5 Cấu trúc Decorator

5.2 Ý nghĩa và vai trò của từng lớp:

Component: giao diện (interface) chung để các đối tượng cần thêm chức năng trong quá

trình chạy thì triển khai giao diện này.

ConcreteComponent : Một cài đặt cho giao diện Component mà nó định nghĩa một đối

tượng cần thêm các chức năng trong quá trình chạy.

Decorator : một lớp trừu tượng dùng để duy trì một tham chiếu của đối tượng thành phần

và đồng thời cài đặt các thành phần của giao diện.

ConcreteDecorator : Một cài đặt của Decorator, nó cài đặt thêm các thành phần vào đầu

của các đối tượng thành phần.

Trang 10

05/04/2024 10

Trang 11

Giao diện IPizza là thành

Trang 12

05/04/2024 12

Trang 14

05/04/2024 14

Trang 16

05/04/2024 16

Trang 18

6 Tính chất đặc thù

 Chỉ gắn thêm chức năng mà không làm thay đổi cấu trúc đối tượng.

 Chỉ sửa đổi nhiệm vụ chứ không làm thay đổi giao diện.

Trang 20

8 Ưu Nhược điểm

Ưu điểm:

o Giảm thời gian viết code.

o Cung cấp một giải pháp linh hoạt hơn khi thêm chức năng của đối

tượng so với cách kế thừa truyền thống.

Nhược điểm:

o Việc bảo trì có thể là vấn đề vì nó cung cấp rất nhiều loại Object của

class chức năng

Trang 21

9 Các mẫu liên quan

Mẫu Decorator khác với Adapter, Decorator chỉ thay đổi nhiệm vụ của đối tượng, không phải là thay đổi giao diện của nó như Adapter Adapter sẽ mang đến cho đối tượng một giao diện mới hoàn toàn.

Decorator cũng có thể coi như một Composite bị thoái hoá với duy nhất một thành phần Tuy nhiên, một Decorator thêm phần nhiệm phụ, nó là phần đối tượng được kết tập vào.Một Decorator cho phép chúng ta thay đổi bề ngoài của một đối tượng, một strategy cho phép chúng ta thay đổi ruột của đối tượng

Trang 22

10 Ví dụ

Trang 23

CẢM ƠN THẦY VÀ CÁC BẠN ĐÃ LẮNG NGHE!!!

Ngày đăng: 25/02/2019, 22:15

TỪ KHÓA LIÊN QUAN