设计模式之装饰模式

来源:互联网 发布:成都长城开发科技 知乎 编辑:程序博客网 时间:2024/04/27 20:39


Component

public interface Component {public void doSomething();}

ConcreteComponent

public class ConcreteComponent implements Component {@Overridepublic void doSomething() {System.out.println("Function ");}}
Decorator

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

ConcreteDecorator1

public class ConcreteDecorator1 extends Decorator {public ConcreteDecorator1(Component component) {super(component);}@Overridepublic void doSomething(){super.doSomething();doAnotherthing();}private void doAnotherthing(){System.out.println("Function 1");}}

ConcreteDecorator2

public class ConcreteDecorator2 extends Decorator {public ConcreteDecorator2(Component component) {super(component);}@Overridepublic void doSomething(){super.doSomething();doAnotherthing();}private void doAnotherthing(){System.out.println("Function 2");}}

Client

public class Client {public static void main(String[] args) {Component component = new ConcreteComponent();Component component2 = new ConcreteDecorator1(component);Component component3 = new ConcreteDecorator2(component2);component3.doSomething();}}










原创粉丝点击