職責連模式:
使多個物件都有機會處理請求,從而避免請求的傳送者和接受者之間的耦合關係,將多個物件連成一條鏈,並沿著這條鏈傳遞請求,直到有乙個物件處理它為止。
// 管理者
public abstract class manager
public void setsuperior(manager superior)
// 處理員工請求
public abstract void handlerequest(request req);
}// 經理
public class commonmannager extends manager else }}
// 總監
public class majordemo extends manager else }}
// 總經理
public class generalmanager extends manager else if (req.gettype().equals("increase salary") && req.getnum() <= 1000) else }}
// 申請者
public class request
public string gettype()
public void settype(string type)
public string getcontent()
public void setcontent(string content)
public int getnum()
public void setnum(int num)
}// 客戶端
public class chainofresponsibilitymain
}
職責鏈的好處:
1. 職責鏈可以簡化物件的相互連線,它們僅需保持乙個指向其後繼者的引用,而不需要保持它所有候選接受者的引用。
2. 由於是客戶端來定義鏈的結構,我們可以隨時地增加或修改處理乙個請求的結構,增加了給物件指派職責的靈活性。
大話設計模式二十四 職責鏈模式(加薪非要老總批 )
職責連模式 使多個物件都有機會處理請求,從而避免請求的傳送者和接受者之間的耦合關係,將多個物件連成一條鏈,並沿著這條鏈傳遞請求,直到有乙個物件處理它為止。管理者 public abstract class manager public void setsuperior manager superio...
第二十四章 職責鏈模式
職責鏈模式 chain of responsibility 使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這個物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。注意 乙個請求極有可能到了鏈末都得不到處理,或者因為沒有正確配置而得不到處理。created b...
大話設計模式筆記(二十四) 直譯器模式
給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。如果一種特定型別的問題發生的頻率足夠高,那麼可能就值得將該問題的各個例項表述為乙個簡單語言中的句子。這樣就可以構建乙個直譯器,該直譯器通過解釋這些句子來解決該問題。容易改變和擴充套件文法,因為該模式使用類...