<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                34.2 混編小結 在這里的例子中用到了以下模式。 ● 責任鏈模式 負責對命令的參數進行解析,而且所有的擴展都是增加鏈數量和節點,不涉及原有的代碼變更。 ● 命令模式 負責命令的分發,把適當的命令分發到指定的鏈上。 ● 模板方法模式 在Command類以及子類中,buildChain方法是模板方法,只是沒有基本方法而已;在責任鏈模式的CommandName類中,用了一個典型的模板方法handlerMessage,它調用了基本方法,基本方法由各個實現類實現,非常有利于擴展。 ● 迭代器模式 在for循環中我們多次用到類似for(Class c:classes)的結構,是誰來支撐該方法運行?當然是迭代器模式,只是JDK已經把它融入到了API中,更方便使用了。 可能讀者已經注意到了,"ls-l-a"這樣的組合選項還沒有處理。確實沒有處理,以下提供兩個思路來處理。 ● 獨立處理 "ls-l-a"等同于"ls-la",也等同于"ls-al"命令,可以把"ls-la"中的選項"la"作為一個參數來進行處理,擴展一個類就可以了。該方法的缺點是類膨脹得太大,但是簡單。 ● 混合處理 修正命令族處理鏈,每個命令處理節點運行完畢后,繼續由后續節點處理,最終由Command類組裝結果,根據每個節點的處理結果,組合后生成完整的返回信息,如"ls-l-a"就應該是LS_L類與LS_A類兩者返回值組裝的結果,當然鏈上的節點返回值就要放在Collection類型中了。 該框架還有一個名稱,叫做命令鏈(Chain of Command)模式,具體來說就是命令模式作為責任鏈模式的排頭兵,由命令模式分發具體的消息到責任鏈模式。對于該框架,讀者可以繼續擴展下去。當然,上面的程序還可以優化,優化的結果就是Command類縮為一個類,通過CommandEnum配置文件類傳遞命令,這比較容易實現,讀者可以自行設計。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看