日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java多态替换switch_使多态性无法解决那些switch / case语句的麻烦

發布時間:2025/3/21 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java多态替换switch_使多态性无法解决那些switch / case语句的麻烦 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

繼續前面的問題,我實現了基本的命令模式,創建了命令類并編碼到接口,因此在使用任何命令時都可以調用該execute()方法。

但是,我仍然發現自己無法動搖這些案例陳述:我正在從主/決策字符串(由隨機,重復的字符A,B,C或D組成)中讀取每個字符,然后檢索相關的實現地圖上的命令,然后調用其execute方法。

我的設計是這樣的:

public interface Command {

void execute();

}

public class CommandA implements Command{

//implements execute() method

}

private Map myMap= new HashMap();

myMap.put("A", new CommandA);

myMap.put("B", new CommandB);

myMap.put("C", new CommandC);

myMap.put("D", new CommandD);

但是,當我閱讀每條指令時,我又不得不求助于case語句:

switch(instructionFromString){

case 'A':{myMap.get("A").execute(); break;}

case 'B':{myMap.get("B").execute(); break;}

case 'C':{myMap.get("C").execute(); break;}

case 'D':{myMap.get("D").execute(); break;}

顯然,在此過程中,我設法克服了針對案例陳述的多態性優勢。

可能是我選擇用來存儲命令的數據結構嗎?僅從中提取這些命令就可以成為永久數據結構。

我想到的另一件事是我在地圖中使用的鍵/值命名。我試圖在概念上將每個存儲的命令鏈接到其相關指令的方式?即,命令“ A”的實現通過鍵“

A”存儲在地圖上,以便它可以與相應的指令“ A”匹配?在我看來,這似乎不太可能。

對于我下一步將一勞永逸地刪除這些案例陳述的任何提示或進一步建議,將不勝感激。提前謝謝了

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的java多态替换switch_使多态性无法解决那些switch / case语句的麻烦的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。