策略模式是一種定義一系列算法的方法,從概念上來看,全部這些算法完成的都是相同的工做,只是實現不一樣,它能夠以相同的方式調用全部的算法,減小各類算法類與使用算法類之間的耦合。
策略模式的Strategy類參差爲Context定義了一系列的可供重用的算法或行爲。繼承又助於析取出這些算法中的公共功能。
策略模式的優勢是簡化了單元測試,由於每一個算法都有本身的類,能夠經過本身的藉口單獨測試。
當不一樣的行爲堆砌在一個類中時,就很難避免使用條件語句來選擇合適的行爲。將這些行爲封裝在一個個獨立的Strategy類中,能夠在使用這些行爲的類中消除條件語句。
策略模式就是用來封裝算法的,但在實踐中,咱們發現能夠用它類封裝幾乎任何類型的規則,只要在分析過程當中聽到須要在不一樣時間應用不一樣的業務規則,就能夠考慮使用策略模式來處理這種變化的可能性。
1:簡單工廠實現
面向對象的編程,並非類越多越好,類的劃分是爲了封裝,但分類的基礎是抽象,具備相同屬性和功能的對象的抽象集合纔是類。
2:策略模式
它定義了算法家族,分別封裝起來,它它們之間能夠互相替換,此模式讓算法的變化,不會影響到使用算法的客戶。
策略與簡單工廠結合