java設計模式 策略模式

2021-06-17 00:14:53 字數 1679 閱讀 1671

策略模式(strategy pattern

)體現了兩個非常基本的物件導向設計的原則

1、封裝變化的概念;

2、程式設計中使用介面,而不是對介面的實現。

策略模式定義了乙個共同的抽象演算法介面,其子類實現這個介面定義的方法,並且都有各自不同的實現,這些演算法實現可以在客戶端呼叫它們的時候互不影響的變化。   子演算法之間是弱連線的關係,提高了軟體的可擴充套件性與可重用性。

策略模式組成

1、抽象策略角色:策略類,通常由乙個介面或者抽象類實現

2、具體策略角色:包括了相關的演算法和行為,可能不止乙個具體策略角色

3、環境角色:持有乙個策略類的引用,最終給客戶端呼叫的。

策略模式編寫步驟

1、對一組演算法抽象出乙個共同介面,定義這個共同介面

2、編寫策略類,實現這個藉口,每個策略類都有其獨特的實現

3、編寫環境角色類,類中持有乙個對共同介面的引用,對策略物件注入如set

方法和get

方法或者用構造方法完成賦值

例子:

//乙個演算法介面

public inte***ce calculate

//乙個加法策略類,實現演算法介面

public class addcalculate implements calculate

}//乙個除法策略類,實現演算法介面

public class dividecalculate implements calculate

}//乙個環境角色類,持有對介面的引用

public class environment

//獲得策略類物件

public calculate getcalculate()

//用set方法注入策略物件

public void setcalculate(calculate cal)

//環境角色中的介面方法,其具體結果依賴於策略引用指向的具體策略角色物件

public int calculate(int a ,int b)

}//乙個客戶端演示

public class client

}

java 設計模式 策略模式

就是比較兩個類別時,要自己寫乙個比較器,這個比較器實現了 comparator介面,裡面實現public int compare object o1,object o2 方法。在實體類裡面要有乙個成員變數時這個比較器,這個實體類也要實現了 comparable介面。例如 cat有兩個屬性,heigh...

設計模式 java策略模式

相關的資料網上很多,我這裡自己總結一下。策略模式就是為了達到乙個目標,可以有多種方法 即多種策略 採用,為了減少類與類之間的耦合,所以採用如下措施 設定乙個介面,inte ce strategy,裡面有未實現的方法dothings strategya 繼承 strategy,strategyb 也繼...

JAVA設計模式 策略模式

策略模式 1.許多相關的類僅僅是行為有異。策略 提供了一種用多個行為中的乙個行為來配置乙個類的方法。2.需要使用乙個演算法的不同變體。3.演算法使用客戶不應該知道的資料。可使用策略模式以避免暴露複雜的 與演算法相關的資料結構。4.乙個類定義了多種行為,並且這些行為在這個類的操作中以乙個條件語句的形式...