Introduction - If you have any usage issues, please Google them yourself
In OO design and development process you may often encounter the following situation: we need to add a new class has been defined responsibilities (operations), usually we will define a new class that inherits the class defined, this will bring a problem. Through inheritance way to solve this situation also brings complexity of the system, because the depth of the inheritance will become deep. The Decorator is provided a method to the class increased responsibilities, not through inheritance, but by a combination thereof.