Java設計模式(裝飾者模式)

1、UML類圖如下

2、Decorator.java

package com.company.decorator;

public interface Decorator {
    void show();
}

3、Person.java

package com.company.decorator;

public class Person implements Decorator {
    @Override
    public void show() {
        System.out.println("一個人站立");
    }
}

4、AbstractDecorator.java

package com.company.decorator;

public abstract class AbstractDecorator implements Decorator {
    protected Decorator obj;

    public AbstractDecorator(Decorator obj) {
        this.obj = obj;
    }
}

5、ShoesDecorator.java

package com.company.decorator;

public class ShoesDecorator extends AbstractDecorator {

    public ShoesDecorator(Decorator decorator) {
        super(decorator);
    }

    @Override
    public void show() {
        System.out.println("穿了一雙鞋");
        this.obj.show();
    }

}

6、TShirtDecorator.java

package com.company.decorator;

public class TShirtDecorator extends AbstractDecorator {

    public TShirtDecorator(Decorator decorator) {
        super(decorator);
    }

    @Override
    public void show() {
        System.out.println("穿了一個T-Shirt");
        this.obj.show();
    }

}

7、使用

 public static void main(String[] args) {
        //ShoesDecorator shoesDecorator = new ShoesDecorator(new Person());
        //shoesDecorator.show();

        ShoesDecorator ss = new ShoesDecorator(new TShirtDecorator(new Person()));
        ss.show();
    }

運行結果:

穿了一雙鞋
穿了一個T-Shirt
一個人站立

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章