大話設計模式二十四 職責鏈模式(加薪非要老總批 )

2021-06-18 13:31:54 字數 1091 閱讀 9368

職責連模式:

使多個物件都有機會處理請求,從而避免請求的傳送者和接受者之間的耦合關係,將多個物件連成一條鏈,並沿著這條鏈傳遞請求,直到有乙個物件處理它為止。

// 管理者

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...

大話設計模式筆記(二十四) 直譯器模式

給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。如果一種特定型別的問題發生的頻率足夠高,那麼可能就值得將該問題的各個例項表述為乙個簡單語言中的句子。這樣就可以構建乙個直譯器,該直譯器通過解釋這些句子來解決該問題。容易改變和擴充套件文法,因為該模式使用類...