java策略模式 寫的不錯

2021-06-25 09:06:24 字數 1476 閱讀 7613

面是乙個有關於策略模式的故事。假設mike在開車的時候,會很頻繁的加速,有一天因為超速他被乙個警察攔下來了。有可能這個警察會比較友好,沒開任何罰單就讓mike把車開走了。(我們把這型別的警察稱之為「nicepolice」)。也有可能mike遇到了乙個不太友好的警察,然後這個警察給mike出具了一張罰單。(我們把這型別的警察稱之為「hardpolice」)。

mike其實並不知道他會遇到什麼型別的警察,直到他因為超速而被警察要求停車下來,實際上這就是一種程式當中「執行時」的概念,只有在執行的時候,才知道,到底會遇到什麼型別的警察,實際上這就是「策略模式」。

先來定義乙個策略的介面:strategy

1publicinte***cestrategy

再來定義兩種不同型別的strategy:

1publicclassnicepoliceimplementsstrategy

7}

1publicclasshardpoliceimplementsstrategy

7}

定義乙個需要依賴警察來處理超速問題的場景:

01publicclasssituation

07

08publicvoidhandlebypolice(intspeed)

11}

最後,進行測試:

檢視源**

列印幫助

01publicclassmain

15}

策略模式,實際上就是定義了一些演算法,並把他們都封裝起來,使得他們之間可以互相替代。實際上對應上面程式,就是定義了兩種演算法(nicepolice以及hardpolice),由於他們都實現了strategy這個介面,那麼對於依賴於這個介面的例項物件來說,可以動態的對這個依賴進行注入,從而達到執行時確定具體使用哪一種演算法的目的。

java 策略模式

例如 public class test inte ce stra class add implements stra class sub implements stra class enviroment public int returnans int a,int b 不同的類實現相同的介面,然後...

java 策略模式

策略模式就是好多演算法,方式封裝到一起,然後根據不同的需求選擇不同的演算法 例子 首先乙個介面 public static inte ce a 然後實現該介面的類 就是不同的演算法類 public static class b implements a public static class c i...

java策略模式

head first對策略模式的定義是 封裝一系列演算法,並把它們包裝起來,使他們可以相互替換。在該書的第一章節模擬鴨子遊戲裡面,講用策略模式改寫,但本身用了 這個模式,這裡我理解的是一般使用策略模式就有一定程度的使用 模式。看下面的例子。這是乙個 模式的例子 package pattern.det...