1. 程式人生 > 其它 >設計模式 策略模式

設計模式 策略模式

設計模式 策略模式

概念

結構

案例程式碼



定義一個促銷活動共同介面

public interface Strategy {
    void show();
}

定義具體策略角色

public class StrategyA implements Strategy{
    @Override
    public void show() {
        System.out.println("買一送一");
    }
}
public class StrategyB implements Strategy{
    @Override
    public void show() {
        System.out.println("滿200送50");
    }
}

定義環境角色(context) 聯絡上下文

public class SaleMan {
    private Strategy strategy;

    public SaleMan(Strategy strategy){
        this.strategy = strategy;
    }

    public void sale(){
        strategy.show();
    }
}

根據傳進來的策略物件來實現不同的策略方法

public class Test {
    public static void main(String[] args) {
        StrategyA strategyA = new StrategyA();
        SaleMan saleMan = new SaleMan(strategyA);
        saleMan.sale();
        //切換B策略
        saleMan.setStrategy(new StrategyB());
        saleMan.sale();
    }
}

總結