The GoF design patterns book defines Decorator design pattern as follows - 'Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to sub-classing for extending functionality.'