我对设计模式很陌生,我想知道,如果有一个“责任树”设计模式,是不是“责任链”的变体?
发布于 2020-02-29 19:13:15
是。除了一个简单的处理程序实现https://www.dofactory.com/net/chain-of-responsibility-design-pattern
/// <summary>
/// The 'Handler' abstract class
/// </summary>
abstract class Handler
{
protected Handler successor;
public void SetSuccessor(Handler successor)
{
this.successor = successor;
}
public abstract void HandleRequest(int request);
}你会像这样做https://www.codeproject.com/Articles/20108/Extending-Chain-of-Responsibility-Design-Pattern
public class IfHandler : Handler<string>
{
private Case1Handler case1Handler;
private Case2Handler case2Handler;
public IfHandler(Case1Handler case1, Case2Handler case2)
{
case1Handler = case1;
case2Handler = case2;
}
public override bool MustExecuteHandleActions(string request)
{
return false;
}
public override void PassRequestToNextHandlers(string request)
{
if (request != null)
case1Handler.Handle(request);
else
case2Handler.Handle(request);
}
}https://stackoverflow.com/questions/60464354
复制相似问题