為了避免請求傳送者與多個請求處理者耦合在一起,將所有請求的處理者通過前一物件記住其下乙個物件的引用而連成一條鏈;當有請求發生時,可將請求沿著這條鏈傳遞,直到有物件處理它為止。責任鏈模式主要包含以下角色。
抽象處理者(handler)角色:定義乙個處理請求的介面,包含抽象處理方法和乙個後繼連線。
具體處理者(concrete handler)角色:實現抽象處理者的處理方法,判斷能否處理本次請求,如果可以處理請求則處理,否則將該請求轉給它的後繼者。
舉個栗子,打籃球依次傳球,每個人就是責任鏈上的處理器
inte***ce
player
class
aplayer
implements
player
@override
public
void
play
(string ball)
else
if(next != null)
else}}
class
bplayer
implements
player
@override
public
void
play
(string ball)
else
if(next != null)
else
}}
main()
一天乙個設計模式 單例模式
1.餓漢模式public class sprivate static s s news public static s get 執行緒安全,載入時就初始化,根據需求來,此種用法最簡單2.懶漢模式public class sprivate static s s public static s get ...
一天乙個設計模式 建造者模式
這個模式和工廠模式很像,建造者 builder 模式和工廠模式的關注點不同 建造者模式注重零部件的組裝過程,而工廠方法模式更注重零部件的建立過程,但兩者可以結合使用。舉個栗子,stringbuilder public class abstractstringbuilder char c privat...
一天乙個設計模式 原型模式
原型模式即通過乙個已有的物件clone出乙個一樣的物件,當直接建立該物件非常消耗資源時則可以考慮原型模式。實現轉殖操作,繼承 cloneable,重寫object的 clone 轉殖分深度轉殖和淺度轉殖 淺度轉殖 只把需要轉殖物件的成員變數的值複製過去,如果是引用變數也只會複製引 用位址,指向的和原...