設計模式—— 一.策略模式 (1)

1.本質

   策略模式用到就是“多態”的思想,父類有多個子類,爲同一個行爲實現不同的表現形式:

 

 

2.案例(生活例子)

 

     舉例: 1箇中國人,1個印度人,他們都吃飯,但是中國人是用筷子,印度人是用手,這個就是多態,同一行爲的2種實現方式

代碼:

       吃飯行爲:

public interface Eating { void  havingDinner();}

    中國人和印度人:

public class Chinese implements  Eating{

   @Override
    public void havingDinner() {

        System.out.println("中國人用筷子吃飯");
    }
}
public class Indian  implements Eating{
    @Override
    public void havingDinner() {
        System.out.println("印度人吃飯用手");
    }
}

 策略類和測試函數:

public class Dinner {

    private Eating eating;

    //定義一個吃飯方式的方法,在這裏由於傳入不同的實現類,從而實現多態
    void havingDinnerStyle(Eating eating){
         this.eating = eating;
         eating.havingDinner();
     }

     //開始測試
     public static void main(String[] args) {
          Eating ChineseEating = new Chinese();
          Eating IndianEating = new Indian();
          Dinner dinner =new Dinner();
          dinner.havingDinnerStyle(ChineseEating);
          dinner.havingDinnerStyle(IndianEating);
    }
}

輸出結果:

中國人用筷子吃飯
印度人吃飯用手

拓展:

         在業務複雜的情況下,實現的不一定是接口,可能是一個抽象類,裏面除了抽象方法,還有一些屬性啊其他方法什麼的,但是理念都是一樣的。

 

 

 

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