設計模式 策略模式
阿新 • • 發佈:2021-10-14
設計模式 策略模式
概念
結構
案例程式碼
定義一個促銷活動共同介面
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(); } }