Chain of Responsibility

Chain of Responsibilityパターンは、ある処理がその部分の責任でできるならそこで処理し、できないなら上位部分に回すような構造。

14.Chain of Responsibility パターン | TECHSCORE(テックスコア)

main.cppで、

センダーでイベントを送信して、ハンドラで処理する。

$ vi main.cpp 
$ g++ -o main main.cpp first_event.cpp second_event.cpp sender.cpp
$ ./main 
first proc done!
class_sender::send TRUE!
second proc done!
class_sender::send TRUE!
class_sender::send ALL FALSE!
$

1が送信されると、firstのハンドラ。
2が送信されると、secondのハンドラ。
3が送信されると、どちらもないので"class_sender::send ALL FALSE!"が出力される。

Sample/designpattern/chain_of_responsibility/chain_of_responsibility/src/chain_of_responsibility at master · bg1bgst333/Sample · GitHub