<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] ## 概述 亦稱:Visitor **訪問者模式**是一種行為設計模式,它能將算法與其所作用的對象隔離開來。 ## 模式結構 ![](https://img.kancloud.cn/28/34/283497f56ceacf1f5f7a76a3bd6e381f_1040x1080.png) 1. 訪問者(Visitor)接口聲明了一系列以對象結構的具體元素為參數的訪問者方法。如果編程語言支持重載,這些方法的名稱可以是相同的,但是其參數一定是不同的。 2. 具體訪問者 (Concrete Visitor) 會為不同的具體元素類實現相同行為的幾個不同版本。 3. 元素 (Element) 接口聲明了一個方法來 “接收” 訪問者。 該方法必須有一個參數被聲明為訪問者接口類型。 4. 具體元素 (Concrete Element) 必須實現接收方法。 該方法的目的是根據當前元素類將其調用重定向到相應訪問者的方法。 請注意, 即使元素基類實現了該方法, 所有子類都必須對其進行重寫并調用訪問者對象中的合適方法。 5. 客戶端 (Client) 通常會作為集合或其他復雜對象 (例如一個組合樹) 的代表。 客戶端通常不知曉所有的具體元素類, 因為它們會通過抽象接口與集合中的對象進行交互。 ## 應用場景 1. 如果你需要對一個復雜對象結構 (例如對象樹) 中的所有元素執行某些操作, 可使用訪問者模式。 2. 可使用訪問者模式來清理輔助行為的業務邏輯。 3. 當某個行為僅在類層次結構中的一些類中有意義, 而在其他類中沒有意義時, 可使用該模式。
                  <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>

                              哎呀哎呀视频在线观看