Java装饰者模式你了解吗?
发布于:2018-10-29   作者:admin   浏览:485次

  把许多要实现的功能,加载在子类上,类的继承,显得很臃肿,装饰着模式是在不改变原有类文件和使用继承的情况下,通过创建一个包装对象动态地扩展一个对象的功能,相比生成子类更为灵活。下面java培训来为大家介绍一下Java装饰者模式。

Java装饰者模式你了解吗?

  在装饰模式中的角色有:


  ●抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象。


  ●具体构件(ConcreteComponent)角色:定义一个将要接收附加责任的类。


  ●装饰(Decorator)角色:持有一个构件(Component)对象的实例,并定义一个与抽象构件接口一致的接口。


  ●具体装饰(ConcreteDecorator)角色:负责给构件对象“贴上”附加的责任


  源代码


  抽象构件角色

public interface Component {
    
    public void sampleOperation();
    
}

  具体构件角色

public class ConcreteComponent implements Component {
    @Override
    public void sampleOperation() {
        // 写相关的业务代码
    }
}

  装饰角色

public class Decorator implements Component{
    private Component component;
    
    public Decorator(Component component){
        this.component = component;
    }
    @Override
    public void sampleOperation() {
        // 委派给构件
        component.sampleOperation();
    }
    
}

  具体装饰角色

public class ConcreteDecoratorA extends Decorator {
    public ConcreteDecoratorA(Component component) {
        super(component);
    }
    
    @Override
    public void sampleOperation() {
     super.sampleOperation();
        // 写相关的业务代码
    }
}