* 處理請求的介面
* * @author administrator
* */
public
abstract
class
handler
public
abstract
void
handlerequest
(int request);}
// 具體處理者類,處理它所負責的請求,可訪問它的後繼者,如果可處理該請求,則處理,否則轉給它的後繼者處理
class
concretehandlera
extends
handler
else
if(successor != null)}}
class
concretehandlerb
extends
handler
else
if(successor != null)}}
class
concretehandlerc
extends
handler
else
if(successor != null)}}
/** * 向鏈上的具體處理者物件提交請求
* * @author administrator
* */
public
class
client
;for
(int i : requests)
}}
/**
* 責任鏈模式(chain of responsibility)
* 抽象管理者
*/public
abstract
class
manager
// 設定管理者的上級
public
void
setsuperior
(manager superior)
// 申請請求
public
abstract
void
(request request);}
/** * 責任鏈模式(chain of responsibility)
* 總監
*/public
class
majordomo
extends
manager
@override
public
void
(request request)
else}}
}/**
* 責任鏈模式(chain of responsibility)
* 總經理
*/public
class
generalmanager
extends
manager
@override
public
void
(request request)
else
if(request.
getrequesttype()
=="加薪"
&& request.
getnumber()
<=
500)
else
if(request.
getrequesttype()
=="加薪"
&& request.
getnumber()
>
500)}}
/** * 責任鏈模式(chain of responsibility)
* 經理
*/public
class
commonmanager
extends
manager
@override
public
void
(request request)
else}}
}/**
* 責任鏈模式(chain of responsibility)
* 申請
*/public
class
request
public
void
setrequesttype
(string requesttype)
public string getrequestcontent()
public
void
setrequestcontent
(string requestcontent)
public
intgetnumber()
public
void
setnumber
(int number)
}/**
* 責任鏈模式(chain of responsibility)
* 客戶端main方法
*/public
class
client
}
大話設計模式 職責鏈模式
1.當客戶提交乙個請求時,請求是沿鏈傳遞直至有乙個concretehandler物件負責處理它 dp 2.接收者和傳送者都沒有對方的明確資訊,且鏈中的物件自己也並不知道鏈的結構。結果是職責鏈可簡化物件的相互連線,它們僅需保持乙個指向其後繼者的引用,而不需保持它所有的候選接受者的引用 dp 3.隨時隨...
《大話設計模式 職責鏈模式》筆記
1 職責鏈模式 chain of responsibility 使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。2 責任鏈模式結構圖 3 簡單 實現 handler類,定義乙個處理請示的介面。public a...
大話設計模式(13)職責鏈模式
一 場景描述及uml圖 簡單概括 適用於串序指向的策略,如演算法流 a b c d e f,各個演算法依次指向,特定條件下某些演算法可能會跳過。二 概念 職責鏈模式 chain of responsibility 使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合。將這個物件連成一條...