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

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

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

      設計模式-職責鏈模式

      職責鏈模式概述

      職責鏈模式(Chain of Responsibility)是一種行為型設計模式,它通過為多個對象提供處理請求的機會,從而避免請求的發送者與接收者耦合。職責鏈模式將這些對象連成一條鏈,并沿著鏈傳遞請求,直到有對象處理它為止。

      職責鏈模式的角色

      1. 抽象處理者(Handler):定義處理請求的接口,并包含設置下一個處理者的引用。
      2. 具體處理者(ConcreteHandler):實現抽象處理者,具體處理請求或將請求傳遞給下一個處理者。
      3. 客戶端(Client):創建處理鏈并向處理鏈發送請求。

      示例:權限審批

      假設有一個系統中,需要按照審批權限的不同來處理審批請求:

      • 部門經理審批小額預算。
      • 總經理審批中等預算。
      • 董事會審批高額預算。

      Java 實現代碼

      // 抽象處理者
      abstract class Approver {
          protected Approver nextApprover; // 下一個處理者
      
          public void setNextApprover(Approver nextApprover) {
              this.nextApprover = nextApprover;
          }
      
          // 抽象方法:處理請求
          public abstract void handleRequest(int amount);
      }
      
      // 部門經理
      class Manager extends Approver {
          @Override
          public void handleRequest(int amount) {
              if (amount <= 1000) {
                  System.out.println("部門經理批準了" + amount + "元的預算請求。");
              } else if (nextApprover != null) {
                  nextApprover.handleRequest(amount);
              }
          }
      }
      
      // 總經理
      class GeneralManager extends Approver {
          @Override
          public void handleRequest(int amount) {
              if (amount <= 10000) {
                  System.out.println("總經理批準了" + amount + "元的預算請求。");
              } else if (nextApprover != null) {
                  nextApprover.handleRequest(amount);
              }
          }
      }
      
      // 董事會
      class BoardOfDirectors extends Approver {
          @Override
          public void handleRequest(int amount) {
              if (amount > 10000) {
                  System.out.println("董事會批準了" + amount + "元的預算請求。");
              } else if (nextApprover != null) {
                  nextApprover.handleRequest(amount);
              }
          }
      }
      
      // 客戶端
      public class ChainOfResponsibilityDemo {
          public static void main(String[] args) {
              // 創建處理者
              Approver manager = new Manager();
              Approver generalManager = new GeneralManager();
              Approver board = new BoardOfDirectors();
      
              // 構建職責鏈
              manager.setNextApprover(generalManager);
              generalManager.setNextApprover(board);
      
              // 模擬請求
              System.out.println("請求1:500元");
              manager.handleRequest(500);
      
              System.out.println("\n請求2:5000元");
              manager.handleRequest(5000);
      
              System.out.println("\n請求3:20000元");
              manager.handleRequest(20000);
          }
      }
      

      輸出結果

      請求1:500元
      部門經理批準了500元的預算請求。
      
      請求2:5000元
      總經理批準了5000元的預算請求。
      
      請求3:20000元
      董事會批準了20000元的預算請求。
      

      職責鏈模式的優點

      1. 降低耦合度:請求發送者與接收者解耦。
      2. 動態組合:職責鏈可以動態地增加或修改處理者。

      職責鏈模式的缺點

      1. 性能問題:鏈過長時,可能導致性能下降。
      2. 調試困難:鏈中節點的增刪修改可能引發問題。

      職責鏈模式在現實開發中常用于權限校驗、事件處理等場景,幫助構建靈活、可擴展的系統。

      posted @ 2025-01-16 09:05  龐某人  閱讀(29)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 噜噜噜亚洲色成人网站∨| 日本肉体xxxx裸交| 69人妻精品中文字幕| 安宁市| 亚洲美女被黑人巨大在线播放| 无码毛片一区二区本码视频| 女高中生自慰污污网站| 无码加勒比一区二区三区四区| 无码人妻aⅴ一区二区三区蜜桃| 佛冈县| 国产二区三区不卡免费| 狠狠干| 国产精品亚洲一区二区z| 国产老妇伦国产熟女老妇高清| 午夜片神马影院福利| 樱桃视频影院在线播放| 乱码午夜-极品国产内射| 日韩在线视频网| 亚洲国产精品第一二三区| 色欲av蜜桃一区二区三| 国产成人无码av大片大片在线观看| 天天做日日做天天添天天欢公交车 | 亚洲国产成人精品无色码| 狠狠色综合久久狠狠色综合| 九九热久久只有精品2| 在线日韩日本国产亚洲| 不卡国产一区二区三区| 亚洲熟妇自偷自拍另欧美| 精品无码午夜福利理论片| 99riav精品免费视频观看| 亚洲国产精品老熟女乱码| 亚洲精品国产美女久久久| 国产超碰人人做人人爰| 国产不卡一区不卡二区| 日韩中文字幕av有码| 和黑人中出一区二区三区| 欧美亚洲另类 丝袜综合网| 四虎亚洲国产成人久久精品| 国产午夜精品在人线播放| 无码人妻丰满熟妇片毛片| 香港日本三级亚洲三级|