初識-設計模式三 裝飾者模式

package com.mybatis.designpatterns.decorator;

abstract class Component { // 通用的抽象方法類
    public abstract void run();
    public abstract void swing();
}
package com.mybatis.designpatterns.decorator;

abstract class Decorator extends Component{
    protected Component component;

    public void setComponent(Component component) {
        this.component = component;
    }

}

 

package com.mybatis.designpatterns.decorator;

public class CreateComponentA extends Decorator {

    @Override
    public void run() {
        component.run();
        System.out.println("A....再跑步");
    }

    @Override
    public void swing() {
        component.swing();
        System.out.println("A....再游泳");
    }
}
package com.mybatis.designpatterns.decorator;

public class CreateComponentB extends Decorator {
    @Override
    public void run() {
        System.out.println("B....再跑步");
    }

    @Override
    public void swing() {
        System.out.println("B....再游泳");
    }
}
package com.mybatis.designpatterns.decorator;

public class Main {
    public static void main(String[] args) {
        CreateComponentA createComponentA = new CreateComponentA();
        CreateComponentB createComponentB = new CreateComponentB();
        createComponentA.setComponent(createComponentB);
        createComponentA.run();
        createComponentA.swing();
    }
}

 console打印信息:
    B....再跑步
    A....再跑步
    B....再游泳
    A....再游泳

感受:還是要熟悉運用抽象多態的特點 ,暫時想不出業務中哪裏可以用到這種設計模式

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