<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【Java】23種設計模式——20.狀態模式

      定義

      狀態模式(State Pattern)是一種行為設計模式,它允許對象在其內部狀態改變時改變其行為,使對象看起來似乎修改了它的類。

      角色

      1. Context(上下文):維護當前狀態,并將請求委托給當前狀態對象
      2. State(狀態接口):定義狀態行為的接口
      3. ConcreteState(具體狀態):實現特定狀態下的行為

      應用場景

      • 對象的行為取決于它的狀態,并且必須在運行時根據狀態改變行為
      • 需要大量條件語句來判斷不同狀態下的行為
      • 需要實現狀態轉換邏輯
      • 需要清晰管理狀態轉換的場景(如工作流引擎)

      使用

      • 上下文

        /**
         * 狀態模式:上下文
         * @Author:lyj
         * @Date:2025/5/22 10:17
         */
        public class Context {
            private State currentState ;
        
            public Context(State state)
            {
                this.currentState = state;
            }
        
            /**
             * 設置狀態
             * @param state 狀態
             */
            public void setState(State state)
            {
                this.currentState = state;
            }
        
            /**
             * 請求狀態
             */
            public void request() {
                currentState.handle(this);
            }
        }
        
      • 狀態接口

        /**
         * 狀態模式:狀態接口
         * @Author:lyj
         * @Date:2025/5/22 10:14
         */
        public interface State {
            /**
             * 狀態處理
             */
            public void handle(Context context);
        }
        
      • 具體狀態

      /**
       * 狀態模式:具體狀態A
       * @Author:lyj
       * @Date:2025/5/22 10:22
       */
      public class ConcreteStateA implements State {
          @Override
          public void handle(Context context) {
              System.out.println("當前狀態A,將切換到狀態B");
              context.setState(new ConcreteStateB());
          }
      }
      
      /**
       * 狀態模式:具體狀態B
       * @Author:lyj
       * @Date:2025/5/22 10:24
       */
      public class ConcreteStateB implements State{
          @Override
          public void handle(Context context) {
              System.out.println("當前狀態B,將切換到狀態A");
              context.setState(new ConcreteStateA());
          }
      }
      

      運行客戶端:

      Context  context = new Context(new ConcreteStateA());
      // 多次請求觀察狀態變化
      context.request();      // A→B
      context.request();      // B→A
      context.request();      // A→B
      

      運行結果:
      image

      posted @ 2025-06-20 16:59  陸陸無為而治者  閱讀(27)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 午夜福利日本一区二区无码| 色国产视频| 久久精品国产亚洲av天海翼| 国产精品一码二码三码四码| 99热国产这里只有精品9| 东明县| 蜜臀av一区二区国产精品| 十八禁国产精品一区二区| 国产高跟黑色丝袜在线| 人妻加勒比系列无码专区| 91精品国产午夜福利| 欧美、另类亚洲日本一区二区| 久热久热中文字幕综合激情| 色噜噜在线视频免费观看| 隔壁老王国产在线精品| 色先锋av影音先锋在线| 国产日韩久久免费影院| 久久精品国产99国产精品澳门| 成年无码av片在线蜜芽| 青青青国产在线观看免费| 午夜免费无码福利视频麻豆| 久久精品国产精品亚洲综合| 国产美女69视频免费观看| 亚洲欧美日韩在线不卡| gogo无码大胆啪啪艺术| 探索| 国产99在线 | 欧美| 神马午夜久久精品人妻| 狠狠综合久久av一区二| 性一交一乱一伦一| 临颍县| 人妻内射一区二区在线视频| 午夜免费福利小电影| 亚洲乱码一二三四区国产| 国产99青青成人A在线| 亚洲精品无码久久一线| 蜜臀av一区二区精品字幕 | 国产无遮挡又黄又爽不要vip软件| 99久久亚洲综合精品成人网| 国产高清亚洲一区亚洲二区| 无码人妻久久久一区二区三区|