42 Decorator pattern

Decorator:

Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to sub-classing for extending functionality.

Principles:

Classes should be open for extension, but closed for modification. (Decorator pattern)

Composition and delegation can often be used to  add new behaviors at runtime.

Class diagram:




(1)Given that the decorator has the same supertype as the object it decorates, we can pass around a decorated object in place of the original (wrappedd) object.

(2)The decorator adds its own behavior either before and/or after delegating to the object it decorates to do the rest of the job.

(3)Decorate objects dynamically at runtime.

(4)If you have code that relies on the concrete component's type, decorators will break that code.

(5)Decorators are typically created by using other patterns like Factory and Builder.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章