装饰器模式(Decorator Pattern)

装饰器模式

也叫包装(Wrapper)模式, 目的也是为了扩展现有的对象

示例

角色:

  1. 抽象组件(Component)
  2. 具体组件(ComponentImpl)
  3. 抽象包装角色(Decorator)
  4. 包装角色实现(DecoratorImpl)

代码:

public interface Component {
    
    
    void doSomething();
}
public class ComponentImpl implements Component {
    
    
    @Override
    public void doSomething() {
    
    
        // ...
    }
}
public class Decorator implements Component {
    
    
    private Component component;
    public Decorator(Component component) {
    
    
        this.component = component;
    }

    @Override
    public void doSomething() {
    
    
        component.doSomething();
    }
}
public class DecoratorA extends Decorator {
    
    
    public DecoratorA(Component component) {
    
    
        super(component);
    }

    @Override
    public void doSomething() {
    
    
        super.doSomething();
    }
}
public class DecoratorB extends Decorator {
    
    
    public DecoratorB(Component component) {
    
    
        super(component);
    }

    @Override
    public void doSomething() {
    
    
        super.doSomething();
    }
}

猜你喜欢

转载自blog.csdn.net/sunday2018/article/details/121051302