輕松控制Java戰略形式。本站提示廣大學習愛好者:(輕松控制Java戰略形式)文章只能為提供參考,不一定能成為您想要的結果。以下是輕松控制Java戰略形式正文
界說:一個類的行動或其算法可以在運轉時更改。在戰略形式中,我們創立表現各類戰略的對象和一個行動跟著戰略對象轉變而轉變的 context 對象。戰略對象轉變 context 對象的履行算法。
特色:
1、算法可以自在切換。
2、防止應用多重前提斷定。
3、擴大性優越。
企業級開辟和經常使用框架中的運用:java.servlet.http.HttpServlet的service辦法
實例:對兩個數的操作行動。
public class Demo {
public static void main(String[] args) {
Strategy strategy1 = new StrategyAdd();
Strategy strategy2 = new StrategyDiv();
Context context1 = new Context(strategy1);
context1.execute(10, 5);
context1 = new Context(strategy2);
context1.execute(10, 5);
}
}
interface Strategy{
public void doOperation(int num1,int num2);
}
class StrategyAdd implements Strategy{
public void doOperation(int num1, int num2) {
System.out.println("履行加法");
System.out.println(num1+"+"+num2+"="+(num1+num2));
}
}
class StrategySub implements Strategy{
public void doOperation(int num1, int num2) {
System.out.println("履行減法");
System.out.println(num1+"-"+num2+"="+(num1-num2));
}
}
class StrategyMul implements Strategy{
public void doOperation(int num1, int num2) {
System.out.println("履行乘法");
System.out.println(num1+"*"+num2+"="+(num1*num2));
}
}
class StrategyDiv implements Strategy{
public void doOperation(int num1, int num2) {
System.out.println("履行除法");
System.out.println(num1+"/"+num2+"="+(num1/num2));
}
}
class Context{
private Strategy strategy;
public Context(Strategy strategy) {
this.strategy = strategy;
}
public void execute(int num1,int num2){
strategy.doOperation(num1, num2);
}
}
戰略形式強調的是運轉時更改,能夠在下面的代碼中,這類運轉時更改沒有獲得很好的表現,我們可以假定一個現實場景,就是當一個對象參數傳到一個辦法中來的時刻,假定我們要依據參數的分歧選擇分歧的辦法,我們這是會斟酌if-else來停止斷定,而戰略形式則是對這些if-else停止分類,每個斷定一個類,然後對象過去了,直接挪用戰略接口辦法,而對象參數屬於哪一個詳細類則是有jvm來斷定,我們不用要去懂得對象參數屬性類型甚麼的,如許不只簡化了我們的開辟任務,並且比擬較於if-else,如許有更好的擴大性。
以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。