JAVA設計模式 策略模式

2021-08-01 15:05:31 字數 1040 閱讀 7315

策略模式

1.許多相關的類僅僅是行為有異。「策略」提供了一種用多個行為中的乙個行為來配置乙個類的方法。

2.需要使用乙個演算法的不同變體。

3.演算法使用客戶不應該知道的資料。可使用策略模式以避免暴露複雜的、與演算法相關的資料結構。

4.乙個類定義了多種行為,並且這些行為在這個類的操作中以乙個條件語句的形式出現。

將相關的條件分支移入它們各自的strategy類中以代替這些條件語句。

public abstract class strategy 

public class strategyimpladd extends strategy  }

public class strategyimplsub extends strategy  }

public class strategyimpldiv extends strategy  }

public class strategyimplmul extends strategy  }

public class context 

public int domethod(int a , int b)  }

public inte***ce dataconstants 

public class strategetest else if(str.equals(dataconstants.con_sub))else if(str.equals(dataconstants.con_mul))else

int resultvalue = ctx.domethod(a,b);

system.out.println(resultvalue); }

} 在專案中,暫時還沒有使用到策略模式。其實策略模式也挺簡單的,就是定義乙個抽象類,裡面定義公共的方法,具體的業務讓

子類去實現,到時候根據具體的條件呼叫具體的子類(只不過這個呼叫,靠的是物件類建立的物件呼叫抽象類中的方法實現具體類的呼叫)

像現在寫的加減乘除演算法這樣的例子,策略模式想一想也是有很多用途的,用的時候想一下就可以啦,看看策略模式能不能適用你想實現的

業務。

java 設計模式 策略模式

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

java設計模式 策略模式

策略模式 strategy pattern 體現了兩個非常基本的物件導向設計的原則 1 封裝變化的概念 2 程式設計中使用介面,而不是對介面的實現。策略模式定義了乙個共同的抽象演算法介面,其子類實現這個介面定義的方法,並且都有各自不同的實現,這些演算法實現可以在客戶端呼叫它們的時候互不影響的變化。子...

設計模式 java策略模式

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