装饰设计模式,可以在原有技能的基础上,新增技能,降低继承所带来的耦合性。
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(); } }
原文:https://www.cnblogs.com/hbsdljz/p/11131646.html