UITJava

结构类——装饰者模式

2019-05-29  本文已影响0人  Jason_Sam

装饰者模式

装饰者模式实践

组建抽象类

    public abstract class Component{
        public abstract void operate();
    }

被装饰类

    public class ConcreteComponent extends Component {
        @Override
        public void operate() {
            System.out.println("I am a Component!");
        }
    }

装饰类组

    public abstract class AbstractDecorator extends Component {
        public Component component = null;
        public AbstractDecorator(Component c) {
            component = c;
        }
        @Override
        public abstract void operate();
    }
    
    public class ConcreteDecoratorA extends AbstractDecorator {
        public ConcreteDecoratorA(Component c) {
            super(c);
        }
        @Override
        public void operate() {
            component.operate();
            System.out.println("Add DecoratorA");
        }
    }
    
    public class ConcreteDecoratorB extends AbstractDecorator {
        public ConcreteDecoratorB(Component c) {
            super(c);
        }
        @Override
        public void operate() {
            System.out.println("Add DecoratorB");
            component.operate();
        }
    }

客户端类

public class client {
    public static void main(String[] args) {
        Component component = new ConcreteComponent();
        component = new ConcreteDecoratorA(component);
        component.operate();
        component = new ConcreteDecoratorB(component);
        component.operate();
    }
}

源代码

上一篇 下一篇

猜你喜欢

热点阅读