基于JAVA的设计模式之装饰模式

  • 介绍

    装饰设计模式,可以在原有技能的基础上,新增技能,降低继承所带来的耦合性。

  • 类图

  

  • 代码
public interface Component {
    public void function();
}

public class ConcreteComponent implements Component {
    public void function() {
        System.out.println("基本功能:呼吸+觅食+睡觉");
    }
}

public class Decorator implements Component {
    private Component component;
    public Decorator(Component component){
        this.component=component;
    }
    public void function() {
        component.function();
    }
}

public class ConcreteDecorator extends Decorator {
    public ConcreteDecorator(Component component) {
        super(component);
    }

    @Override
    public void function() {
        super.function();
        System.out.println("附加功能:");
        this.eat();
    }

    private void eat(){
        System.out.println("吃肉");
    }
}

public class Main {
    public static void main(String[] args) {
        Component component=new ConcreteComponent();
        component.function();
        Component deComponent=new ConcreteDecorator(component);
        deComponent.function();
    }
}

猜你喜欢

转载自www.cnblogs.com/hbsdljz/p/11131646.html