責任鏈設計模式(理論版)

2021-06-22 22:21:20 字數 1290 閱讀 2676

首先用自己的話概括責任鏈設計模式:任務或者工作一級一級的傳遞。至於是否完成工作,那就不得而知了。但是一般的情況是有乙個完成的,或者沒有完成的,或者每個人都做一部分。

責任鏈模式的優缺點是:

優點:能降低處理類的複雜性,將乙個業務處理類分為乙個父類和幾個子類,能降低各個功能模組之間的藕合度。對於客戶的而言,發出請求之後,不知道哪個模組會處理這個問題,這可以使得系統在不改變客戶端的情況下,動態的組織和分配責任。提高系統的靈活性和擴充套件性。

缺點:每乙個請求都要從頭開始處理,效率可想而知。

現在用**說明:

一般,責任鏈設計模式需要乙個父類和若干個子類,這個父類中,要有乙個下乙個處理者的引用,然後和相關的處理請求的方法。

下面結合**說明一下:

處理類:

package chainmodel;

public abstract class handler

public void setsuccessor(handler msuccessor)

public abstract string handlerequest(string user, int fee);

}

處理類的子類:

package chainmodel;

public class projectmanager extends handler else

} else

} return result;

}}

package chainmodel;

public class deptmanager extends handler else

} else

} return result;

}}

package chainmodel;

public class generalmanager extends handler else

} else

} return result;

}}

呼叫者:

package chainmodel;

public class main

}

結果是:

generalmanager agree with zhangsan fee:5100

設計模式 責任鏈

使用情況描述 某人向銀行借錢 借1w一下一般櫃員就可以解決,借2w一下一般經理就能解決,如果借更多就需要主管才能解決。這就是乙個責任鏈,根據條件的不同,分別進行複雜的邏輯運算。if,switch都可以進行這樣的操作,但是需要在每一層進行一次複雜的操作。責任鏈模式是一種物件的行為模式。在責任鏈模式裡,...

責任鏈設計模式

責任鏈的應用場景 簡單使用責任鏈模式拆分 servlet api 中的過濾器 模擬servlet中的request物件 desc模擬 servlet 中的 request 物件 模擬servlet中的response物件 desc模擬 servlet 中的 response 物件 過濾器抽象層 de...

設計模式 責任鏈

引用 objective c程式設計之道 ios設計模式解析 責任鏈模式 使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間發生耦合。此模式將這些物件連成一條鏈,從而沿著這條鏈傳遞請求,直到有乙個物件處理它為止。責任鏈主要思想 很多物件引用了同一型別的另乙個物件,形成了一條鏈。鏈中每個物件...