前提:含chain管理類、抽象處理者類、具體處理者類。行為模式,當前類引用下游形成一條鏈。(暫時沒想到更啥,先更著以前寫的責任鏈模式吧。。。。)
另一種方法:filter介面、filtera實現類、filterb實現類、filterchain有個方法迭代器執行上述filter。
1 抽象處理者類:
abstract class
abstractlogger
//處理這個責任鏈資料
public void
loggermessage
(int
level
,string message)
//進入下一條鏈
if(nextlogger
!=null
) }
//模板方法模式,用於子類中實現輸出資料
protected abstract void
write
(string message);
}
2 具體處理者:
//debug級別
class
filelogger
extends
abstractlogger
@override
protected void
write
(string message)
}//error級別
class
errorlogger
extends
abstractlogger
@override
protected void
write
(string message)
}//info級別
class
consolelogger
extends
abstractlogger
@override
protected void
write
(string message)
} 3 chain鏈類:
class
loggerchain
} 4 用法:
@test
public void
test1
()throws
exception
設計模式之 責任鏈模式
在一些情況下,對乙個訊息 含事件 的響應和處理需要很多物件來參與,這些物件對訊息的處理有前後順序,形成乙個處理鏈條,但物件是否真正處理訊息有賴於在它之前的物件的處理策略,前乙個物件處理後,後乙個物件則不需參與處理,這就是責任鏈模式。現實中有很多類似的場景,比如上訪,上訪一般是從最基層的信訪部門接受信...
設計模式之(責任鏈模式)
chain of responsibleity 責任鏈模式 在責任鏈模式 中,很多物件由每乙個物件對其下家的引用而接。起來形成一條鏈。請求在這個鏈上傳遞,直到鏈上的某乙個物件決定處理此請求。客戶並不知道鏈上的哪乙個物件最終處理這個請求,系統可以在不影響客戶端的情況下動態的重新組織鏈和分配責任。處理者...
設計模式之責任鏈模式
假設現在乙個公司的請假流程如下 一天及以下由小組組長審批,一天以上三天以下由經理審批,三天以上七天以下由老闆審批,七天以上直接勸退。如果每次請假時都很長的if else 來判斷該去找誰請假,很不容易擴充套件,我們使用責任鏈模式來實現。首先,是乙個抽象的父類 public abstract class...