一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 輕松掌握Java策略模式

輕松掌握Java策略模式

2020-06-19 11:10斷了聯系 JAVA教程

這篇文章主要幫助大家輕松掌握Java策略模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下

定義:一個類的行為或其算法可以在運行時更改。在策略模式中,我們創建表示各種策略的對象和一個行為隨著策略對象改變而改變的 context 對象。策略對象改變 context 對象的執行算法。

特點:

    1、算法可以自由切換。

    2、避免使用多重條件判斷。

    3、擴展性良好。

企業級開發和常用框架中的應用:java.servlet.http.HttpServlet的service方法

實例:對兩個數的操作行為。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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,這樣有更好的擴展性。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
  • JAVA教程java中實現四則運算代碼

    java中實現四則運算代碼

    本文給大家分享了幾個java中實現四則運算的代碼,有個人的也有網友的,代碼寫的不是很好,難免會有BUG,忘發現BUG的親們能提醒我下,好讓我改進 ...

    hebedich1742020-01-03
  • JAVA教程JavaWeb工程中集成YMP框架快速上手

    JavaWeb工程中集成YMP框架快速上手

    YMP是一個非常簡單、易用的一套輕量級JAVA應用開發框架,設計原則主要側重于簡化工作任務、規范開發流程、提高開發效率。對YMP框架感興趣的小伙伴們可...

    有理想的魚3652020-04-02
  • JAVA教程java必學必會之線程(2)

    java必學必會之線程(2)

    本文對java線程進行深入學習,重點介紹了線程同步問題、線程死鎖問題,感興趣的小伙伴們可以參考一下 ...

    孤傲蒼狼3772020-03-07
  • JAVA教程Java使用Apache POI庫讀取Excel表格文檔的示例

    Java使用Apache POI庫讀取Excel表格文檔的示例

    POI庫是Apache提供的用于在Windows下讀寫各類微軟Office文檔的Java庫,這里我們就來看一下Java使用Apache POI庫讀取Excel表格文檔的示例: ...

    it_wangxiangpan4802020-05-15
  • JAVA教程Java基礎類Class使用指南

    Java基礎類Class使用指南

    關于通過類名訪問class屬性,我朋友問過好幾次了,一直沒明白這個東西到底是什么?對此,我參照網友們的博客,總結了一些小知識,如發現錯誤,希望...

    hebedich4592020-03-19
  • JAVA教程Spring與Mybatis相結合實現多數據源切換功能

    Spring與Mybatis相結合實現多數據源切換功能

    這篇文章主要介紹了Spring與Mybatis相結合實現多數據源切換功能的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下 ...

    Alfa3172020-05-20
  • JAVA教程Java的Struts框架中的主題模板和國際化設置

    Java的Struts框架中的主題模板和國際化設置

    這篇文章主要介紹了Java的Struts框架中的主題模板和國際化設置,Struts是Java的SSH三大web開放框架之一,需要的朋友可以參考下 ...

    java教程網2602020-05-25
  • JAVA教程談談HttpClient使用詳解

    談談HttpClient使用詳解

    這篇文章給大家介紹HttpClient使用,httpClient是一個客戶端的http通信實現庫,HttpClient的目標是發送和接收HTTP報文。本文講解的非常詳細,對HttpClient使用感興...

    wangpeng0471882020-01-10
主站蜘蛛池模板: 国产成人一区二区三区影院免费 | 色婷婷影院在线视频免费播放 | 红杏网| 美女污视频在线观看 | 精品国产区| 午夜私人福利影院 | 天天色综合6| 欧美va在线观看 | 色婷婷激婷婷深爱五月老司机 | 久草在线福利资站免费视频 | 狠狠色伊人亚洲综合网站色 | 日韩精品福利视频一区二区三区 | 114级毛片免费观看 1024亚洲天堂 | 四虎在线观看 | 亚洲第一色视频 | 星空传媒在线视频 | 日韩亚洲欧美理论片 | 免费看一级毛片 | 亚洲国产AV一区二区三区四区 | 动漫精品一区二区三区3d | 人妖女天堂视频在线96 | 高h巨肉play 高h短篇辣肉各种姿势bl | 亚洲日本va中文字幕 | 3d肉浦团在线观看 | 九九热免费在线观看 | 国产精品高清一区二区三区不卡 | 久操久操久操 | 亚洲欧美天堂 | 日本在线看免费 | 青青草一区二区免费精品 | 国产在线成人精品 | 欧洲另类一二三四区 | 国产99精品免费视频看6 | 高清不卡免费一区二区三区 | 欧美一级片在线视频 | 国产精品日韩欧美一区二区 | 好舒服好爽再快点视频 | 久久青青草原综合伊人 | 公妇乱淫在线播放免费观看 | 91看片淫黄大片.在线天堂 | 国产在线观看精品香蕉v区 国产在线观看a |