zoukankan      html  css  js  c++  java
  • 责任链

    1:意图
    为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。
    2:类图

    3:代码
    namespace Bll.ChainOfResponsibility
    {
        
    public class MSGEntity
        
    {
            
    //信息内容
            private string content;
            
    public string Content
            
    {
                
    get return content; }
                
    set { content = value; }
            }


            
    //审核级别
            private int level = 0;
            
    public int Level
            
    {
                
    get return level; }
                
    set { level = value; }
            }

        }

        
        
    public abstract class Man
        
    {
            
    protected Man _man;

            
    public abstract void Read(MSGEntity entity);

            
    public void SetSuccessor(Man man)
            
    {
                
    this._man = man;
            }

        }


        
    public class Employee : Man
        
    {
            
    const int level = 1;
            
    public override void Read(MSGEntity entity)
            
    {
                
    if (object.Equals(level, entity.Level))
                

                    
    //
                }

                
    else if (base._man != null)
                
    {
                    _man.Read(entity);
                }

            }

        }


        
    public class Leader : Man
        
    {
            
    const int level = 2;
            
    public override void Read(MSGEntity entity)
            
    {
                
    if (object.Equals(level, entity.Level))
                
    {
                    
    //
                }

                
    else if (base._man != null)
                
    {
                    _man.Read(entity);
                }

            }

        }


        
    public class Manage : Man
        
    {
            
    const int level = 3;
            
    public override void Read(MSGEntity entity)
            
    {
                
    if (object.Equals(level, entity.Level))
                
    {
                    
    //
                }

                
    else if (base._man != null)
                
    {
                    _man.Read(entity);
                }

            }

        }


    }

    //调用
                Employee employ = new Employee();
                Leader leader 
    = new Leader();
                Manage manage 
    = new Manage();

                employ.SetSuccessor(leader);
                leader.SetSuccessor(manage);

                employ.Read(
    new MSGEntity());
  • 相关阅读:
    timestamp的两个属性:CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP
    python 典型文件结构
    PHP接口开发加密技术实例原理与例子
    一个高效的敏感词过滤方法(PHP)
    Thinkphp自动验证规则
    PHP解析xml文件时报错:I/O warning : failed to load external entity
    访问php网站报500错误时显示错误显示
    15个最受欢迎的Python开源框架
    分布式监控系统开发【day38】:报警策略设计(二)
    分布式监控系统开发【day38】:报警阈值程序逻辑解析(三)
  • 原文地址:https://www.cnblogs.com/tommyli/p/1228254.html
Copyright © 2011-2022 走看看