
abstract class Component {
public abstract void display();
}
class Window extends Component {
public void display() {
System.out.println("显示窗体!");
}
}
class TextBox extends Component {
public void display() {
System.out.println("显示文本框!");
}
}
class ListBox extends Component {
public void display() {
System.out.println("显示列表框!");
}
}
class ComponentDecorator extends Component {
private Component component;
public ComponentDecorator(Component component)
{
this.component = component;
}
public void display() {
component.display();
}
}
class ScrollBarDecorator extends ComponentDecorator {
public ScrollBarDecorator(Component component) {
super(component);
}
public void display()
{
this.setScrollBar();
super.display();
}
public void setScrollBar() {
System.out.println("为构件增加滚动条!");
}
}
class BlackBorderDecorator extends ComponentDecorator {
public BlackBorderDecorator(Component component) {
super(component);
}
public void display() {
this.setBlackBorder();
super.display();
}
public void setBlackBorder() {
System.out.println("为构件增加黑色边框!");
}
}
class Client {
public static void main(String args[]) {
Component component, componentSB;
component = new Window();
componentSB = new ScrollBarDecorator(component);
componentSB.display();
}
}