说明:挺直白,就是某个人是有哪些责任,哪些不是他的。比如请假,1天可以主管批准,1天以上需要部门经理批准,3天以上需要总监批准。就在类里设定好下一个责任人是哪个就可以了。
实现:
public class Employee { public int day { get; set; } public Employee(int _day) { day = _day; } public void qingjia(int _day) { //请多少天 day = _day; } } public abstract class ABS_zeren { public ABS_zeren Nextparson { get; set; }//下一个责任人 public string Name { get; set; } public ABS_zeren(string _name) { Name = _name; } public abstract void shenpi(Employee qj); } /// <summary> /// 主管 /// </summary> public class zhuguan : ABS_zeren { public zhuguan(string _name) : base(_name) { } public override void shenpi(Employee qj) { if(qj.day < 1) { //我可以审核 } else if(Nextparson != null) { //给下一个责任人 Nextparson.shenpi(qj); } } } /// <summary> /// 经理 /// </summary> public class jingli : ABS_zeren { public jingli(string _name) : base(_name) { } public override void shenpi(Employee qj) { if (qj.day>1 && qj.day < 3) { //我可以审核 } else if(Nextparson!=null) { //给下一个责任人 Nextparson.shenpi(qj); } } } //开始请假 public class test { public void start() { ABS_zeren zhuguan = new zhuguan("陈主管"); ABS_zeren jingli = new jingli("黄经理"); //要设置下一个责任人 zhuguan.Nextparson = jingli; jingli.Nextparson = null; //请假2天 Employee emp = new Employee(2); //责任人审批 zhuguan.shenpi(emp); } }