<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之旅 廣告
                37.2 最佳實踐 本章我們粗略地講解了一個MVC框架。一個MVC框架要考慮的外界環境因素太多了,而且本身MVC框架也是一個輕量型的,就是希望我們編寫的程序在沒有Struts、Spring MVC等框架的環境中不需要大規模的修改照樣能夠運行,所以編寫一個框架不是一件容易的事情。幸運的是我們以學習模式為主,通過設計MVC框架來了解設計模式。我們來看看本章用到了哪些模式。 ● 工廠方法模式:通過工廠方法模式把所有的攔截器鏈實現出來,方便在系統初始化時直接處理。 ● 單例模式:Action的默認配置都是單例模式,在一般的應用中單例已經足夠了,在復雜情況下可以使用享元模式提供應用性能,減少單例模式的性能隱患。 ● 責任鏈模式:建立攔截器鏈以及過濾器鏈,實現任務的鏈條化處理。 ● 迭代器模式:非常方便地遍歷攔截器鏈內的攔截器,而不用再自己寫遍歷攔截器鏈的方法。 ● 中介者模式:以核心控制器為核心,其他同事類都負責為核心控制器“打工”,保證核心控制器瘦小、穩定。 ● 觀察者模式:配置文件修改時,不用重啟應用可以即刻生效,提供使用者的體驗。 ● 橋梁模式:使不同的視圖配合不同的語言文件,為終端用戶展示不同的界面。 ● 策略模式:對XML文件的檢查可以使用兩種不同的策略,而且可以在測試機和開發機中使用不同的檢查策略,方便系統間自由切換。 ● 訪問者模式:在解析XML文件時,使用訪問者非常方便地訪問到需要的對象。 ● 適配器模式:把一個開發者不熟悉的對象轉換為熟悉的對象,避免工具或框架對開發者的影響。 ● 門面模式:Action分發器負責所有的Action的分發工作,它提供了一個調用Action的唯一入口,避免外部模塊深入到模型模塊內部。 ● 代理模式:大量使用動態代理,確保了框架的智能化。 MVC框架有非常成熟的源碼,有興趣的讀者可以看看Struts、Spring MVC等源碼,其中包含了非常多的設計模式。讀源碼是提高設計技能和開發技能的一個重要途徑,看一本書是與作者進行了一次心靈交互,看一份源碼是與一群作者進行心靈交互,對提高自己的技術修養有非常大的幫助。
                  <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>

                              哎呀哎呀视频在线观看