OBJECT ORIENTED ANALYSIS AND DESIGN decorator

23 7 0
  • Loading ...
1/23 trang

Thông tin tài liệu

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

University of Technical Education HCMC Faculty of Information Technology o0o OBJECT-ORIENTED ANALYSIS AND DESIGN Decorator Lecturer: Nguyễn Trần Thi Văn 2/25/19 Nội dung Đặt vấn đề Giai pháp Tổng quan Decorator Mục đích sử dụng Cấu trúc Decorator Tính chất đặc thù Lĩnh vực áp dụng hệ Ưu nhược điểm 2/25/19 Đặt vấn đề:  Chúng ta nhiều tặng quà cho bạn bè người thân Một q bày bán thơng thường dạng thô gấu bông, xe đồ chơi, viết Sau mua xong, gói quà hộp Sau bọc giấy gói q bên ngồi cho đẹp Như vậy, q cuối hình thành theo trình tư sau: Món q thơ → đóng hộp → gói q  Theo trình tự này, sản phẩm mà nhận gồm phần: quà, hộp giấy gói Tất kết hợp lại để tạo quà đẹp hơn, hấp dẫn hơn, hay nói theo cách khác, "decor" q trơng bắt mắt Làm để thể vấn đề lập trình? 2/25/19 Giải pháp: Chúng ta sử dụng decorator pattern để giải vấn đề Giả sử hành vi quà (Gift) giftRender, ta có interface Giftable thực chức giftRender Chúng ta có class có tên Gift implement Giftable để thực chức giftRender Tên chức giftRender vấn giữ ngun, nhiên, tính chất q thay đổi, quà bỏ vào hộp bọc lại Khi đó, sản phẩm cuối có chức giftRender nội dung thực thi chức thay đổi so với lúc thể class Gift Decorator pattern khơng làm thay đổi tên hành vi làm thay đổi kết hành vi Chúng ta xem xét mơ hình để hiểu rõ cấu trúc Decorator pattern 2/25/19 2/25/19 Tổng quan Decorator    Decorator Pattern loại design pattern thuộc mơ hình cấu trúc (structural pattern) Decorator pattern cách mở rộng phương thức cách linh động Các thể lớp khơng ảnh hưởng việc mở rộng 2/25/19 Mục đích sử dụng   2/25/19 Gắn chức bổ sung cho đối tượng (gán động) Decorator cung cấp số thay đổi mềm dẻo cho phân lớp để mở rộng thêm chức Cấu trúc Decorator 5.1 Cấu trúc, lớp/đối tượng tham gia: 2/25/19 Cấu trúc Decorator 5.2 Ý nghĩa vai trò lớp:     2/25/19 Component: giao diện (interface) chung để đối tượng cần thêm chức trình chạy triển khai giao diện ConcreteComponent : Một cài đặt cho giao diện Component mà định nghĩa đối tượng cần thêm chức trình chạy Decorator : lớp trừu tượng dùng để trì tham chiếu đối tượng thành phần đồng thời cài đặt thành phần giao diện ConcreteDecorator : Một cài đặt Decorator, cài đặt thêm thành phần vào đầu đối tượng thành phần 2/25/19 10 Giao diện IPizza là thành phần Component trong mẫu thiết kế Decorator, chứa phương thức doPizza, phương thức dùng để tạo pizza phù hợp 2/25/19 11 2/25/19 12 2/25/19 13 2/25/19 14 2/25/19 15 2/25/19 16 2/25/19 17 Tính chất đặc thù Chỉ gắn thêm chức mà không làm thay đổi cấu trúc đối tượng Chỉ sửa đổi nhiệm vụ không làm thay đổi giao diện 2/25/19 18 Lĩnh vực áp dụng hệ Ứng dụng: Sử dụng Decorator khi:  Thêm chức bổ sung cho đối tượng riêng biệt cách động suốt, nghĩa không chịu ảnh hưởng (tác động ) đối tượng khác   Cho chức mà chức rút lại (hủy bỏ) (nếu không cần nữa) Khi mở rộng thực phân lớp thực Đôi lượng lớn mở rộng độc lập thực lại tạo bùng nổ phân lớp để trợ giúp cho kết hợp Hoặc định nghĩa lớp bị che hay nói cách khác khơng có giá trị cho việc phân lớp 2/25/19 19 Ưu Nhược điểm Ưu điểm: o Giảm thời gian viết code o Cung cấp giải pháp linh hoạt thêm chức đố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ì vấn đề cung cấp nhiều loại Object class chức 2/25/19 20 Các mẫu liên quan Mẫu Decorator khác với Adapter, Decorator thay đổi nhiệm vụ đối tượng, thay đổi giao diện Adapter Adapter mang đến cho đối tượng giao diện hồn tồn Decorator coi Composite bị thoái hoá với thành phần Tuy nhiên, Decorator thêm phần nhiệm phụ, phần đối tượng kết tập vào.Một Decorator cho phép thay đổi bề đối tượng, strategy cho phép thay đổi ruột đối tượng Chúng cách luân phiên để ta thay đổi đối tượng 2/25/19 21 10 Ví dụ 2/25/19 22 CẢM ƠN THẦY VÀ CÁC BẠN ĐÃ LẮNG NGHE!!! 2/25/19 23 ... class Gift Decorator pattern không làm thay đổi tên hành vi làm thay đổi kết hành vi Chúng ta xem xét mơ hình để hiểu rõ cấu trúc Decorator pattern 2/25/19 2/25/19 Tổng quan Decorator    Decorator. .. cho đối tượng (gán động) Decorator cung cấp số thay đổi mềm dẻo cho phân lớp để mở rộng thêm chức Cấu trúc Decorator 5.1 Cấu trúc, lớp/đối tượng tham gia: 2/25/19 Cấu trúc Decorator 5.2 Ý nghĩa... cần thêm chức trình chạy Decorator : lớp trừu tượng dùng để trì tham chiếu đối tượng thành phần đồng thời cài đặt thành phần giao diện ConcreteDecorator : Một cài đặt Decorator, cài đặt thêm thành
- Xem thêm -

Xem thêm: OBJECT ORIENTED ANALYSIS AND DESIGN decorator , OBJECT ORIENTED ANALYSIS AND DESIGN decorator , Mục đích sử dụng

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay