The Decorator maintains reference to the VisualComponent, and serves as a node of a singly-linked list of all visual components.
The BorderDecorator and ScrollDecorator are Concrete Decorators, which
Add extra responsibilities to the visual component
Forward requests to the abstractDecorator. The Decoratorclass further communicates window requests (such as Draw and Resize) to the next visual component on Decorator's list.