Mẫu thiết kế: Mẫu trang trí

Tram Ho

I. Giới thiệu:


Decorator Pattern là một Design Pattern thuộc nhóm Structural. Nó cho phép chúng ta thêm các behavior mới cho một object (wrapped object) bằng cách đặt object đó vào trong một object khác (wrapper object) chứa đựng behaviour cần được thêm vào.

  • Component Interface: định nghĩa các thuộc tính và phương thức cho wrapperwrapped object.
  • Concrete Component: là wrapped object cơ bản, nó cho phép các Decorator có thể wrap nó bên trong để thêm các behavior mới. Concrete Component sẽ được implement Component Interface.
  • Base Decorator: là class cha của các Concrete Decortor, nó cũng được implement Component Interface. Bên trong Decorator sẽ chứa object của một wrapped object và cũng sẽ có những phương thức giống với wrapped object đó.
  • Concrete Decorator: class kế thừa Base Decorator, là nơi định nghĩa các behavior mới cần được thêm vào wrapped object.

II. Cách thức hoạt động:


Decorator Pattern hoạt động theo cơ chế tạo ra nhiều object là các Concreate Decorator để bao bọc lẫn nhau. Mỗi khi cần thêm một behavior mới cho object thì Decorator Pattern sẽ tạo ra một Concreate Decorator để xử lý behaviorConcrete Decorator này sẽ là object mới (wrapper object) bao bọc object cũ (wrapped object).

III. Decorator Pattern được sử dụng khi nào?


Decorator Pattern được sử dụng khi muốn thêm behavior vào một object mà không muốn thay đổi cấu trúc của object đó.

IV. Ví dụ:


Component protocol

Concrete Component

Base Decorator

Concrete Decorator

Sử dụng

V. Tài liệu tham khảo:


Chia sẻ bài viết ngay

Nguồn bài viết : Viblo