责任链模式
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
IApproval teamLeaderApproval = new TeamLeaderApproval();
IApproval managerApproval = new ManagerApproval();
teamLeaderApproval.SetNextApproval(managerApproval);
ApprovalForm approvalForm = new ApprovalForm();
approvalForm.Price = 90;
teamLeaderApproval.HandleRequest(approvalForm);
approvalForm.Price = 100;
teamLeaderApproval.HandleRequest(approvalForm);
Console.ReadKey();
}
}
public class ApprovalForm {
public double Price { get; set; }
}
public interface IApproval {
void SetNextApproval(IApproval approval);
void HandleRequest(ApprovalForm approvalForm);
}
public class ApprovalBase {
protected IApproval nextApproval;
public void SetNextApproval(IApproval approval)
{
nextApproval = approval;
}
}
public class TeamLeaderApproval : ApprovalBase, IApproval
{
public void HandleRequest(ApprovalForm approvalForm)
{
if (approvalForm.Price < 100) {
Console.WriteLine("组长解决");
} else {
if (nextApproval != null) {
nextApproval.HandleRequest(approvalForm);
}
}
}
}
public class ManagerApproval : ApprovalBase, IApproval
{
public void HandleRequest(ApprovalForm approvalForm)
{
Console.WriteLine("经理解决");
}
}
}

浙公网安备 33010602011771号