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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] ## 概述 亦稱:State ### 狀態模式與有限狀態機的概念緊密相關 其主要思想是程序在任意時刻僅可處于幾種*有限*的*狀態*中。在任何一個特定狀態中,程序的行為都不相同,且可瞬間從一個狀態切換到另一個狀態。不過,根據當前狀態,程序可能會切換到另外一種狀態,也可能會保持當前狀態不變。這些數量有限且預先定義的狀態切換規則被稱為*轉移* ## 狀態模式結構 ![](https://img.kancloud.cn/4a/3c/4a3c2e8415eae5c303c576da5590e3c3_1080x820.png) 1. **上下文**(Context)保存了對于一個具體狀態對象的引用,并會將所有與該狀態相關的工作委派給它。上下文通過狀態接口與狀態對象交互,且會提供一個設置器用于傳遞新的狀態對象。 2. 狀態 (State) 接口會聲明特定于狀態的方法。 這些方法應能被其他所有具體狀態所理解, 因為你不希望某些狀態所擁有的方法永遠不會被調用。 3. 具體狀態 (Concrete States) 會自行實現特定于狀態的方法。 為了避免多個狀態中包含相似代碼, 你可以提供一個封裝有部分通用行為的中間抽象類。 4. 上下文和具體狀態都可以設置上下文的下個狀態, 并可通過替換連接到上下文的狀態對象來完成實際的狀態轉換。 ## 適合應用場景 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>

                              哎呀哎呀视频在线观看