行为型/职责链模式/处理就返回/Mode1.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

namespace DesignModeConsole.行为型.职责链模式;

#region 方案一优化后

/// <summary>
/// 所有处理器类的抽象父类  使用模板模式抽离逻辑到抽象父类
/// </summary>
public abstract class Handler1_2
{
    private Handler1_2? _successor;

    public void SetNextHandler(Handler1_2? successor)
    {
        this._successor = successor;
    }

    /// <summary>
    /// 将_successor.Handle的逻辑从具体的处理器类中剥离出来,放到抽象父类中,
    /// 这样子具体的处理器类就只需要实现自己的业务逻辑就可以了
    /// </summary>
    public void Handle()
    {
        var handled = DoHandle();
        // 如果前一个处理成功那么就不往下继续执行了
        if (_successor != null && !handled)
        {
            _successor.Handle();
        }
    }

    /// <summary>
    /// 进行处理  返回处理的成功不成功
    /// </summary>
    /// <returns></returns>
    protected abstract bool DoHandle();
}

public class Handler1A1_2 : Handler1_2
{
    protected override bool DoHandle()
    {
        Console.WriteLine("开始处理HandlerA 第一个");
        var handled = false;
        // 业务逻辑处理 判断是否可以处理
        return handled;
    }
}

public class Handler1B1_2 : Handler1_2
{
    protected override bool DoHandle()
    {
        Console.WriteLine("开始处理HandlerB 第二个");
        var handled = false;
        // 业务逻辑处理 判断是否可以处理
        return handled;
    }
}

/// <summary>
后面还有 127 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。