您的位置:首页 > 编程语言 > C#

C#设计模式-责任链模式

2018-12-18 11:19 405 查看
[code]using System;
using System.Collections.Generic;

namespace TestCSharp
{
class Program
{
static void Main(string[] args)
{
Executor designer = new Designer();
Executor developer = new Developer();
Executor tester = new Tester();
designer.NextExecutor = developer;
developer.NextExecutor = tester;

designer.Execute(new Task());

Console.ReadKey();
}

class Task
{
// full value is 100.
public int Progress { set; get; }
}

abstract class Executor
{
public Executor NextExecutor { set; get; }
public abstract void Execute(Task task);
}

class Designer : Executor
{
public override void Execute(Task task)
{
task.Progress += 40;
if (task.Progress >= 40)
{
Console.WriteLine("designer part done! ");
NextExecutor.Execute(task);
}
}
}

class Developer : Executor
{
public override void Execute(Task task)
{
task.Progress += 40;
if (task.Progress >= 80)
{
Console.WriteLine("developer part done! ");
NextExecutor.Execute(task);
}
}
}

class Tester : Executor
{
public override void Execute(Task task)
{
task.Progress += 20;
if (task.Progress >= 100)
{
Console.WriteLine("complete the task! ");
}
}
}
}
}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: