我一直認爲大的switch語句是OOP設計不好的一個症狀。過去,我已經閱讀了討論這個主題的文章,他們提供了基於OOP的替代方法,通常基於多態來實例化正確的對象來處理案例。大開關語句:壞OOP?
我現在處於一種基於來自TCP套接字的數據流的怪異開關語句的情況,其中協議基本上由換行符終止命令組成,後面是數據行,後面是結束標記。該命令可以是100個不同的命令之一,所以我想找到一種方法將這個怪物開關語句減少到更易於管理的地步。
我已經做了一些Google搜索以找到我記得的解決方案,但令人遺憾的是,谷歌已經成爲近期多種查詢無關結果的荒原。
這種問題是否有任何模式?對可能的實現有什麼建議?
我以爲有一個想法是使用字典查找,將命令文本與要實例化的對象類型進行匹配。這具有很好的優點,只需創建一個新對象並在表中插入一個新的命令/類型以用於任何新命令。
但是,這也有類型爆炸的問題。我現在需要100個新類,再加上我必須找到一種方法將它們乾淨地連接到數據模型。 「一個真正的轉換聲明」真的要走嗎?
我會感謝您的想法,意見或評論。
如何使用表達式?所以找到它的名字並調用它的功能。名稱可以很容易地與傳遞的變量匹配,所以我們不需要使用開關。 – leegod 2016-12-28 04:09:13