首页 > 代码库 > 职责链模式

职责链模式

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

/*


职责链模式

*
*
* 好处是把任务分化了,并让各个执行只管处理自己的部分,处理不能转交下一个处理进行处理
* 不好是可能到最后就没有处理到请求
*

*/

namespace App_MYCS.HDL_SJMS.ZRLMS
{
class my_ZRLMS
{
public void Dy()
{
hander1 h1 = new hander1();
hander2 h2 = new hander2();

h1.SetSuccessor(h2);//设定请求转移处理对象


int request = 15;
h1.HandleRequest(request);//开始请求

}

}

abstract class Hander
{
protected Hander successor;

public void SetSuccessor(Hander successor)
{
this.successor = successor;
}

public abstract void HandleRequest(int request);//抽像请求处理方法
}

class hander1 : Hander
{
public override void HandleRequest(int request)
{
if (request >= 0 && request < 10)//设定自己能处理的请求范围
{
Console.WriteLine("处理请求");
}
else if(successor!=null)
{
successor.HandleRequest(request); //转移处理对象
}
}
}
class hander2 : Hander
{
public override void HandleRequest(int request)
{
if (request >= 10 && request < 20)//设定自己能处理的请求范围
{
Console.WriteLine("处理请求");
}
else if (successor != null)
{
successor.HandleRequest(request);
}
}
}

}

职责链模式