zoukankan      html  css  js  c++  java
  • 职责链模式

    职责链模式:让多个同族对象连接成一个有先后关系的链。然后根据自己条件决定是否处理请求,否则把请求按着链冒泡,只到有对象它为止。

    例如:我的电脑坏了,我只认识it维修部门,我就给他电话处理。他收到我的请求后,看看事情的难易程度决定怎么处理。

     interface IChain
        {
            void HandleRequest(Level l);
        }
    
        enum Level
        {
            low,
            middle,
            high
        }
    
        class Manager:IChain
        {
            IChain pre;
            IChain next;
    
            public Manager(IChain p, IChain n)
            {
                pre = p;
                next = n;
            }
    
            /// <summary>
            /// 处理客户端请求。
            /// </summary>
            /// <param name="l">请求种类</param>
            public void HandleRequest(Level l)
            {
                if (l==Level.low)
                {
                    //I can do it.
                }
                else if(l==Level.middle)
                {
                    next.HandleRequest(l);
                }
                else
                {
                    pre.HandleRequest(l);
                }
            }
        }
    
        class TopManager:IChain
        {
    
            public void HandleRequest(Level l)
            {
                if (l==Level.high)
                {
                    //I can do it
                }
            }
        }
    
        class LowManager:IChain
        {
    
            public void HandleRequest(Level l)
            {
                if (l==Level.low)
                {
                    //i can do it
                }
            }
        }
    
        class Client
        {
            public void Run()
            {
                LowManager lm = new LowManager();
                TopManager tm = new TopManager();
                Manager m = new Manager(lm,tm);
                m.HandleRequest(Level.low);
            }
        }
    View Code
  • 相关阅读:
    行列式的六条运算法则整理
    李昊大佬的CV模板
    洛谷P2918 [USACO08NOV]买干草(一道完全背包模板题)
    .
    洛谷P2822 组合数问题
    欧拉筛法模板&&P3383 【模板】线性筛素数
    拓展欧几里得算法
    欧几里得算法求最大公约数模板
    P2678 跳石头
    【五一qbxt】test1
  • 原文地址:https://www.cnblogs.com/363546828/p/3154277.html
Copyright © 2011-2022 走看看