### 職責鏈模式
使多個對象都有機會處理請求,從而避免請求的發送者和接受者之間的耦合關系。將這個對象連成一條鏈,并沿著這條鏈傳遞該請求,知道有一個對象處理它為止。(摘抄)
其實這個職責鏈模式有點像數據結構里面的并查集,找處理對象的過程,就像是找父親的過程。
使用這種模式處理一些請求很方便,因為每一個類都可以只處理一種情況,當自己處理不了之后,就交給下一個類去處理,這樣讓每一個處理類都分工明確,而且轉換十分靈活,可以隨時增減處理對象和修改處理請求。
~~~
public abstract class Request
{
Request request;
public void setSuccessRequest(Request request)
{
this.request = request;
}
public abstract void doRequest(int req);
}
public class ConcreteRequest1 extends Request
{
@Override
public void doRequest(int req) {
// TODO Auto-generated method stub
if (req == 1)
{
System.out.println("req == 1");
}
else
{
request.doRequest(req);
}
}
}
public class ConcreteRequest2 extends Request
{
@Override
public void doRequest(int req) {
// TODO Auto-generated method stub
if (req != 1)
{
System.out.println("req != 1");
}
}
}
class Client
{
public static void main()
{
Request request1 = new ConcreteRequest1();
Request request2 = new ConcreteRequest2();
request1.setSuccessRequest(request2);
request1.doRequest(1);
}
}
~~~
通過代碼可以很明顯的看出只要構建好這條鏈那么處理只需要用這條鏈的頭節點請求就可以了。
- 前言
- (1)代碼無錯就是優?——簡單工廠模式
- (2)商場促銷——策略模式
- (3)&(4)&(5) 設計模式原則
- (6)穿什么有這么重要?——裝飾模式
- (7)為別人做嫁衣——代理模式
- (8)雷鋒依然在人間——工廠方法模式
- (9)簡歷復印——原型模式
- (10)考題抄錯會做也白搭——模板方法模式
- (11)迪米特法則
- (12)牛市股票還會虧錢?—— 外觀模式
- (13)好菜每回味不同——建造者模式
- (14)老板回來,我不知道——觀察者模式
- java實現事件委托
- (15)就不能不還DB嗎?—— 抽象工廠模式
- (16)無盡加班何時休息——狀態模式
- (17)在NBA我需要翻譯——適配器模式
- (18)如果再回到從前——備忘錄模式
- (19)分公司=部門——組合設計模式
- (20)想走?可以!先買票——迭代器模式
- (21)有些類也需計劃生育——單例模式
- (22)手機軟件何時統一——橋接模式
- (23)烤羊肉串引來的思考——命令模式
- (24)加薪非要老總批?——職責鏈模式
- (25)世界需要和平——中介者模式
- (26)項目多也別傻做——享元模式
- (28)男人和女人——訪問者模式