設計模式(二十)職責鏈模式

2021-08-31 18:45:40 字數 716 閱讀 3907

職責鏈模式(chain of responsbility)使多個物件都有機會處理請求,從而避免請求的傳送者和接受者之間的耦合關係。將這個物件啊連城一條鏈,並沿著這條鏈傳遞改請求,直到有乙個物件處理他為止

public abstract class handler 

//處理請求的抽象方法

public abstract void handlerequest(int request);

}public class concretehandler1 extends handler

else if(successor!=null)

}}public class concretehandler2 extends handler

else if(successor!=null)

}}public class concretehandler3 extends handler

else if(successor!=null)}}

職責鏈模式的好處:

接受者和傳送物件沒有對方的明確資訊,且鏈中的物件自己也並不知道鏈的結構。結果是職責鏈可簡化物件的相互鏈結,他們僅需要保持乙個指向其後繼者的引用,而不需要保持他所有的候選接受者的引用。

職責鏈模式的缺點:

乙個請求極有可能到了鏈的末端都得不到處理,或者因為沒有正確配置而得不到處理。例如本例中如果輸入的數字大於30,請求有可能得不到處理

設計模式(二十) 職責鏈模式

職責鏈模式,使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這個物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。1.如下 using system namespace chainofresponsibility using system namespace...

設計模式筆記(二十) 職責鏈模式

職責鏈模式 chain of responsibility 使多個物件都有機會處理請求,從而避免請求的傳送者接收者之間的耦合關係。將這個物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。優點 當客戶提交乙個請求時,請求是沿鏈傳遞直到有乙個concretehandler物件負責處理它。...

二十 職責鏈模式

職責鏈模式 chain of responsibility 使多個物件都有機會處理請求,從而避免請求的傳送者和接受者之間的耦合關係。將這個物件連成一條鏈,並沿著這條鏈傳遞該請求,知道有乙個物件處理它為止。ifndef handler h define handler h include using ...