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
  • 相关阅读:
    LeetCode Reverse Nodes in k-Group
    LeetCode Unique Binary Search Trees II
    Binary Tree Zigzag Level Order Traversal
    JavaWeb--JSP
    Java--面向对象
    javaScript-进阶篇(三)
    javaScript-进阶篇(二)
    java--常用类
    javaScript-进阶篇(一)
    Java--数组
  • 原文地址:https://www.cnblogs.com/363546828/p/3154277.html
Copyright © 2011-2022 走看看