1. 程式人生 > 實用技巧 >【設計模式】19.責任鏈模式

【設計模式】19.責任鏈模式

說明:挺直白,就是某個人是有哪些責任,哪些不是他的。比如請假,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); } }