java设计模式----装饰模式

来源:互联网 发布:淘宝推广计划怎么写 编辑:程序博客网 时间:2024/06/05 02:23

分为四部分:抽象构建角色,具体构建角色,装饰角色,具体装饰角色


抽象构建角色:

public interface Component {    public void show();}

具体构建角色:

public class Child implements Component{    @Override    public void show() {        System.out.print("小孩穿上了:");    }}

public class Adult implements Component{    @Override    public void show() {        System.out.print("成人穿上了:");    }}


装饰角色:

public class Action implements Component {    private Component component;    public Action(Component component){        this.component = component;    }    @Override    public void show() {         component.show();    }}

具体装饰角色:

public class TShirts extends Action {    public TShirts(Component component) {        super(component);    }    public void show(){        super.show();        System.out.print("T恤");    }}

public class Trousers extends Action {    public Trousers(Component component) {        super(component);    }    public void show(){        super.show();        System.out.print("长裤");    }}

运行:

public class Test {    public static void main(String[] args){        Component component = new Child();        Component tshirts = new TShirts(component);        Component trousers = new Trousers(tshirts);        trousers.show();        System.out.println();        Component component_adult = new Adult();        Component tshirts_adult = new TShirts(component_adult);        tshirts_adult.show();    }}


结果:

小孩穿上了:T恤长裤
成人穿上了:T恤


优点:

可以灵活的添加与去除装饰;

装饰可以各种调换顺序;



0 0
原创粉丝点击