策略模式的定義:測試
策略模式其實特別好理解,俗話說得好,條條大路通羅馬,作的都是一件事,實現的方式卻能夠千萬種,在這種狀況下,如何使得每一個人均可以根據本身的喜愛來選擇具體的方式,在調用時能夠根據不一樣方式的變化而互不影響的變化。this
策略模式的實現:spa
1.首先定義一個策略接口。code
2.根據不一樣的方式具體的實現這個策略接口。對象
3.在使用策略對象的類中,定義一個該策略接口的引用,經過構造方法完成賦值。blog
策略模式的應用:接口
1.定義一個旅行接口
public interface Travel { public void transportation(); }
2.三個不一樣的實現方式,分別爲開車、乘火車、乘飛機旅行 class Car implements Travel { public void transportation() { System.out.println("本身開車去歐洲旅行!"); } } class Train implements Travel { public void transportation() { System.out.println("乘火車去歐洲旅行!"); } } class Plane implements Travel { public void transportation() { System.out.println("乘飛機去歐洲旅行!"); } }
3.定義一個對外調用的策略類,經過構造方法引入旅行接口 public class Strategy { private Travel travel; public Strategy(Travel travel) { this.travel = travel; } public void transportation() { travel.transportation(); } }
4.測試不一樣的旅行方式 public class StrategyTest { public static void main(String[] args) { Strategy strategy = new Strategy(new Car()); strategy.transportation(); Strategy strategy1 = new Strategy(new Train()); strategy1.transportation(); Strategy strategy2 = new Strategy(new Plane()); strategy2.transportation(); } }